From ad2366344a8789ea72465ec132548e7fd032c201 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:45:32 +0000 Subject: [PATCH] SDK regeneration --- .../accounting/accounting_periods/client.rb | 22 +- .../accounting/accounts/client.rb | 34 +- .../accounting/async_passthrough/client.rb | 10 +- .../async_passthrough_retrieve_response.rb | 57 + .../accounting/async_tasks/client.rb | 99 + .../accounting/attachments/client.rb | 20 +- .../accounting/audit_trail/client.rb | 16 +- .../accounting/balance_sheets/client.rb | 20 +- .../accounting/bank_feed_accounts/client.rb | 369 ++++ .../bank_feed_transactions/client.rb | 408 ++++ .../accounting/cash_flow_statements/client.rb | 20 +- lib/merge_ruby_client/accounting/client.rb | 35 + .../accounting/company_info/client.rb | 20 +- .../accounting/contacts/client.rb | 159 +- .../accounting/credit_notes/client.rb | 197 +- .../accounting/employees/client.rb | 216 ++ .../accounting/expenses/client.rb | 259 ++- .../types/expenses_list_request_expand.rb | 32 + .../types/expenses_retrieve_request_expand.rb | 32 + .../accounting/field_mapping/client.rb | 52 +- .../accounting/force_resync/client.rb | 4 +- .../general_ledger_transactions/client.rb | 253 +++ ...ledger_transactions_list_request_expand.rb | 25 + ...er_transactions_retrieve_request_expand.rb | 25 + .../accounting/income_statements/client.rb | 20 +- .../accounting/invoices/client.rb | 298 ++- .../types/invoices_list_request_expand.rb | 1792 +++++++++++++++++ .../types/invoices_list_request_status.rb | 16 + .../types/invoices_retrieve_request_expand.rb | 1792 +++++++++++++++++ .../accounting/issues/client.rb | 14 +- .../accounting/items/client.rb | 20 +- .../items/types/items_list_request_expand.rb | 24 + .../types/items_retrieve_request_expand.rb | 24 + .../accounting/journal_entries/client.rb | 257 ++- .../accounting/link_token/client.rb | 29 +- .../accounting/linked_accounts/client.rb | 4 +- .../accounting/payments/client.rb | 261 ++- .../accounting/purchase_orders/client.rb | 257 ++- .../accounting/scopes/client.rb | 24 +- .../accounting/tax_rates/client.rb | 20 +- .../accounting/tracking_categories/client.rb | 20 +- .../accounting/transactions/client.rb | 20 +- .../accounting/types/account.rb | 55 +- .../types/account_account_type_enum.rb | 34 + .../accounting/types/account_details.rb | 13 +- .../types/account_details_and_actions.rb | 13 +- ...account_details_and_actions_status_enum.rb | 2 + .../accounting/types/account_integration.rb | 28 +- .../accounting/types/account_request.rb | 47 +- .../accounting/types/accounting_attachment.rb | 8 +- .../accounting/types/accounting_period.rb | 66 +- .../accounting/types/async_post_task.rb | 74 + .../types/async_post_task_result.rb | 69 + .../types/async_post_task_status_enum.rb | 16 + .../accounting/types/audit_log_event.rb | 14 + .../accounting/types/balance_sheet.rb | 16 +- .../accounting/types/bank_feed_account.rb | 834 ++++++++ .../bank_feed_account_account_type_enum.rb | 12 + .../types/bank_feed_account_request.rb | 788 ++++++++ .../types/bank_feed_account_response.rb | 101 + .../accounting/types/bank_feed_transaction.rb | 209 ++ ...bank_feed_transaction_bank_feed_account.rb | 56 + .../bank_feed_transaction_request_request.rb | 167 ++ ...ction_request_request_bank_feed_account.rb | 57 + .../types/bank_feed_transaction_response.rb | 101 + .../accounting/types/cash_flow_statement.rb | 16 +- .../accounting/types/company_info.rb | 16 +- .../accounting/types/component_type_enum.rb | 12 + .../accounting/types/contact.rb | 24 +- .../accounting/types/contact_request.rb | 16 +- .../accounting/types/credit_note.rb | 58 +- .../credit_note_apply_line_for_credit_note.rb | 132 ++ ...note_apply_line_for_credit_note_invoice.rb | 56 + ...note_apply_line_for_credit_note_request.rb | 120 ++ ...ly_line_for_credit_note_request_invoice.rb | 56 + .../credit_note_apply_line_for_invoice.rb | 132 ++ ...note_apply_line_for_invoice_credit_note.rb | 56 + .../accounting/types/credit_note_line_item.rb | 29 +- .../types/credit_note_line_item_request.rb | 194 ++ .../credit_note_line_item_request_company.rb | 56 + .../credit_note_line_item_request_item.rb | 55 + .../accounting/types/credit_note_request.rb | 875 ++++++++ .../credit_note_request_accounting_period.rb | 56 + ...edit_note_request_applied_payments_item.rb | 55 + .../types/credit_note_request_company.rb | 56 + .../types/credit_note_request_contact.rb | 56 + .../credit_note_request_line_items_item.rb | 55 + .../credit_note_request_payments_item.rb | 55 + ...t_note_request_tracking_categories_item.rb | 56 + .../accounting/types/credit_note_response.rb | 101 + .../accounting/types/credit_or_debit_enum.rb | 12 + .../accounting/types/employee.rb | 199 ++ .../accounting/types/employee_company.rb | 55 + .../accounting/types/event_type_enum.rb | 11 + .../accounting/types/expense.rb | 56 +- .../accounting/types/expense_employee.rb | 56 + .../accounting/types/expense_line.rb | 48 +- .../accounting/types/expense_line_employee.rb | 56 + .../accounting/types/expense_line_request.rb | 54 +- .../types/expense_line_request_employee.rb | 56 + .../accounting/types/expense_request.rb | 48 +- .../types/expense_request_employee.rb | 56 + .../external_target_field_api_response.rb | 37 +- ...iod_status_enum.rb => feed_status_enum.rb} | 2 +- .../accounting/types/field_format_enum.rb | 20 + ...field_mapping_api_instance_remote_field.rb | 14 +- .../field_mapping_api_instance_response.rb | 37 +- .../types/field_permission_deserializer.rb | 28 +- .../field_permission_deserializer_request.rb | 28 +- .../accounting/types/field_type_enum.rb | 20 + .../types/general_ledger_transaction.rb | 248 +++ ...al_ledger_transaction_accounting_period.rb | 57 + .../general_ledger_transaction_company.rb | 56 + ...n_general_ledger_transaction_lines_item.rb | 56 + .../types/general_ledger_transaction_line.rb | 1490 ++++++++++++++ ...general_ledger_transaction_line_account.rb | 55 + ...general_ledger_transaction_line_company.rb | 56 + ...general_ledger_transaction_line_contact.rb | 55 + ...eneral_ledger_transaction_line_employee.rb | 55 + .../general_ledger_transaction_line_item.rb | 55 + ...er_transaction_tracking_categories_item.rb | 56 + .../accounting/types/income_statement.rb | 16 +- .../accounting/types/invoice.rb | 134 +- .../invoice_applied_credit_notes_item.rb | 55 + .../invoice_applied_vendor_credits_item.rb | 55 + .../accounting/types/invoice_employee.rb | 56 + .../accounting/types/invoice_line_item.rb | 62 +- .../types/invoice_line_item_employee.rb | 56 + .../types/invoice_line_item_request.rb | 54 +- .../invoice_line_item_request_employee.rb | 56 + .../accounting/types/invoice_request.rb | 56 +- .../types/invoice_request_employee.rb | 56 + .../accounting/types/item.rb | 38 +- .../accounting/types/item_format_enum.rb | 20 + .../types/item_purchase_tax_rate.rb | 56 + .../accounting/types/item_sales_tax_rate.rb | 56 + .../accounting/types/item_schema.rb | 82 + .../accounting/types/item_type_enum.rb | 20 + .../accounting/types/journal_entry.rb | 84 +- .../accounting/types/journal_entry_request.rb | 34 +- .../accounting/types/journal_line.rb | 52 +- .../accounting/types/journal_line_request.rb | 44 +- .../accounting/types/language_enum.rb | 12 + .../types/paginated_bank_feed_account_list.rb | 80 + .../paginated_bank_feed_transaction_list.rb | 80 + .../types/paginated_employee_list.rb | 80 + ...ginated_general_ledger_transaction_list.rb | 81 + .../paginated_remote_field_class_list.rb | 80 + .../types/patched_payment_request.rb | 24 +- ...d_payment_request_applied_to_lines_item.rb | 8 +- .../accounting/types/payment.rb | 68 +- .../types/payment_line_item_request.rb | 16 +- .../accounting/types/payment_request.rb | 24 +- .../accounting/types/purchase_order.rb | 70 +- .../types/purchase_order_line_item.rb | 46 +- .../types/purchase_order_line_item_request.rb | 38 +- .../types/purchase_order_request.rb | 34 +- .../accounting/types/remote_data.rb | 10 +- .../accounting/types/remote_field.rb | 75 + .../accounting/types/remote_field_api.rb | 6 +- .../types/remote_field_api_response.rb | 37 +- .../accounting/types/remote_field_class.rb | 145 ++ .../accounting/types/remote_field_request.rb | 75 + ...remote_field_request_remote_field_class.rb | 55 + .../accounting/types/report_item.rb | 18 +- .../accounting/types/status_895_enum.rb | 12 + .../accounting/types/tax_component.rb | 150 ++ .../accounting/types/tax_rate.rb | 89 +- .../types/tax_rate_tax_components_item.rb | 55 + .../accounting/types/tracking_category.rb | 32 +- .../types/tracking_category_company.rb | 2 +- .../accounting/types/transaction.rb | 28 +- ...y_enum.rb => transaction_currency_enum.rb} | 2 +- .../accounting/types/transaction_line_item.rb | 32 +- .../types/underlying_transaction_type_enum.rb | 22 + .../accounting/types/vendor_credit.rb | 44 +- .../vendor_credit_apply_line_for_invoice.rb | 132 ++ ...it_apply_line_for_invoice_vendor_credit.rb | 56 + ...dor_credit_apply_line_for_vendor_credit.rb | 132 ++ ...it_apply_line_for_vendor_credit_invoice.rb | 56 + ...it_apply_line_for_vendor_credit_request.rb | 120 ++ ..._line_for_vendor_credit_request_invoice.rb | 56 + .../accounting/types/vendor_credit_line.rb | 28 +- .../types/vendor_credit_line_request.rb | 157 ++ .../vendor_credit_line_request_account.rb | 56 + .../accounting/types/vendor_credit_request.rb | 813 ++++++++ ...vendor_credit_request_accounting_period.rb | 56 + .../types/vendor_credit_request_company.rb | 56 + ...credit_request_tracking_categories_item.rb | 56 + .../types/vendor_credit_request_vendor.rb | 56 + .../types/vendor_credit_response.rb | 101 + .../accounting/vendor_credits/client.rb | 187 +- .../ats/activities/client.rb | 20 +- .../ats/applications/client.rb | 32 +- .../ats/async_passthrough/client.rb | 10 +- .../async_passthrough_retrieve_response.rb | 57 + .../ats/attachments/client.rb | 20 +- .../ats/audit_trail/client.rb | 10 +- .../ats/candidates/client.rb | 20 +- .../ats/departments/client.rb | 20 +- lib/merge_ruby_client/ats/eeocs/client.rb | 20 +- .../ats/field_mapping/client.rb | 52 +- .../ats/force_resync/client.rb | 4 +- .../ats/interviews/client.rb | 20 +- .../ats/job_interview_stages/client.rb | 20 +- .../ats/job_postings/client.rb | 20 +- lib/merge_ruby_client/ats/jobs/client.rb | 40 +- .../ats/link_token/client.rb | 21 +- .../ats/linked_accounts/client.rb | 4 +- lib/merge_ruby_client/ats/offers/client.rb | 20 +- lib/merge_ruby_client/ats/offices/client.rb | 20 +- .../ats/reject_reasons/client.rb | 20 +- lib/merge_ruby_client/ats/scopes/client.rb | 24 +- .../ats/scorecards/client.rb | 20 +- lib/merge_ruby_client/ats/tags/client.rb | 20 +- .../ats/types/account_details.rb | 13 +- .../ats/types/account_details_and_actions.rb | 13 +- ...account_details_and_actions_status_enum.rb | 2 + .../ats/types/account_integration.rb | 10 +- lib/merge_ruby_client/ats/types/activity.rb | 8 +- .../ats/types/application.rb | 10 +- lib/merge_ruby_client/ats/types/attachment.rb | 10 +- .../ats/types/audit_log_event.rb | 12 + lib/merge_ruby_client/ats/types/candidate.rb | 10 +- lib/merge_ruby_client/ats/types/department.rb | 8 +- lib/merge_ruby_client/ats/types/eeoc.rb | 8 +- .../ats/types/email_address.rb | 8 +- .../ats/types/event_type_enum.rb | 9 + ...field_mapping_api_instance_remote_field.rb | 14 +- .../types/field_permission_deserializer.rb | 28 +- .../field_permission_deserializer_request.rb | 28 +- lib/merge_ruby_client/ats/types/job.rb | 8 +- .../ats/types/job_interview_stage.rb | 8 +- .../ats/types/job_posting.rb | 8 +- .../ats/types/language_enum.rb | 12 + lib/merge_ruby_client/ats/types/offer.rb | 8 +- lib/merge_ruby_client/ats/types/office.rb | 8 +- .../ats/types/phone_number.rb | 8 +- .../ats/types/reject_reason.rb | 8 +- .../ats/types/remote_data.rb | 10 +- .../ats/types/remote_user.rb | 8 +- .../ats/types/scheduled_interview.rb | 8 +- lib/merge_ruby_client/ats/types/scorecard.rb | 8 +- .../ats/types/screening_question.rb | 8 +- .../ats/types/screening_question_answer.rb | 8 +- .../ats/types/screening_question_option.rb | 8 +- lib/merge_ruby_client/ats/types/tag.rb | 8 +- lib/merge_ruby_client/ats/types/url.rb | 8 +- lib/merge_ruby_client/ats/users/client.rb | 20 +- lib/merge_ruby_client/crm/accounts/client.rb | 40 +- .../crm/association_types/client.rb | 20 +- .../crm/associations/client.rb | 20 +- .../crm/async_passthrough/client.rb | 10 +- .../async_passthrough_retrieve_response.rb | 57 + .../crm/audit_trail/client.rb | 10 +- lib/merge_ruby_client/crm/contacts/client.rb | 40 +- .../crm/custom_object_classes/client.rb | 20 +- .../crm/custom_objects/client.rb | 40 +- .../crm/engagement_types/client.rb | 40 +- .../crm/engagements/client.rb | 40 +- .../crm/field_mapping/client.rb | 52 +- .../crm/force_resync/client.rb | 4 +- lib/merge_ruby_client/crm/leads/client.rb | 40 +- .../crm/link_token/client.rb | 21 +- .../crm/linked_accounts/client.rb | 4 +- lib/merge_ruby_client/crm/notes/client.rb | 40 +- .../crm/opportunities/client.rb | 40 +- lib/merge_ruby_client/crm/scopes/client.rb | 24 +- lib/merge_ruby_client/crm/stages/client.rb | 40 +- lib/merge_ruby_client/crm/tasks/client.rb | 40 +- lib/merge_ruby_client/crm/types/account.rb | 10 +- .../crm/types/account_details.rb | 13 +- .../crm/types/account_details_and_actions.rb | 13 +- ...account_details_and_actions_status_enum.rb | 2 + .../crm/types/account_integration.rb | 10 +- .../crm/types/audit_log_event.rb | 12 + lib/merge_ruby_client/crm/types/contact.rb | 10 +- lib/merge_ruby_client/crm/types/engagement.rb | 8 +- .../crm/types/event_type_enum.rb | 9 + ...field_mapping_api_instance_remote_field.rb | 14 +- .../types/field_permission_deserializer.rb | 28 +- .../field_permission_deserializer_request.rb | 28 +- .../crm/types/language_enum.rb | 12 + lib/merge_ruby_client/crm/types/lead.rb | 10 +- lib/merge_ruby_client/crm/types/note.rb | 10 +- .../crm/types/opportunity.rb | 10 +- .../crm/types/remote_data.rb | 10 +- lib/merge_ruby_client/crm/types/stage.rb | 8 +- lib/merge_ruby_client/crm/types/task.rb | 8 +- lib/merge_ruby_client/crm/types/user.rb | 8 +- lib/merge_ruby_client/crm/users/client.rb | 48 +- .../filestorage/async_passthrough/client.rb | 10 +- .../async_passthrough_retrieve_response.rb | 57 + .../filestorage/audit_trail/client.rb | 10 +- .../filestorage/drives/client.rb | 20 +- .../filestorage/field_mapping/client.rb | 52 +- .../filestorage/files/client.rb | 24 +- .../filestorage/folders/client.rb | 24 +- .../filestorage/force_resync/client.rb | 4 +- .../filestorage/groups/client.rb | 40 +- .../filestorage/link_token/client.rb | 21 +- .../filestorage/linked_accounts/client.rb | 4 +- .../filestorage/scopes/client.rb | 24 +- .../filestorage/types/account_details.rb | 13 +- .../types/account_details_and_actions.rb | 13 +- ...account_details_and_actions_status_enum.rb | 2 + .../filestorage/types/account_integration.rb | 10 +- .../filestorage/types/audit_log_event.rb | 12 + .../filestorage/types/drive.rb | 18 +- .../filestorage/types/event_type_enum.rb | 9 + ...field_mapping_api_instance_remote_field.rb | 14 +- .../types/field_permission_deserializer.rb | 28 +- .../field_permission_deserializer_request.rb | 28 +- .../filestorage/types/file.rb | 24 +- .../filestorage/types/file_request.rb | 6 +- .../filestorage/types/folder.rb | 24 +- .../filestorage/types/folder_request.rb | 6 +- .../filestorage/types/group.rb | 32 +- .../types/group_child_groups_item.rb | 55 + .../filestorage/types/language_enum.rb | 12 + .../filestorage/types/permission.rb | 12 +- .../filestorage/types/permission_group.rb | 3 +- .../filestorage/types/permission_request.rb | 12 +- .../types/permission_request_group.rb | 3 +- .../types/permission_request_user.rb | 3 +- .../filestorage/types/permission_user.rb | 3 +- .../filestorage/types/remote_data.rb | 75 + .../filestorage/types/user.rb | 18 +- .../filestorage/users/client.rb | 20 +- .../hris/async_passthrough/client.rb | 10 +- .../async_passthrough_retrieve_response.rb | 57 + .../hris/audit_trail/client.rb | 10 +- .../hris/bank_info/client.rb | 20 +- lib/merge_ruby_client/hris/benefits/client.rb | 20 +- .../hris/companies/client.rb | 20 +- .../hris/dependents/client.rb | 20 +- .../hris/employee_payroll_runs/client.rb | 20 +- .../hris/employees/client.rb | 20 +- .../hris/employer_benefits/client.rb | 20 +- .../hris/employments/client.rb | 20 +- .../hris/field_mapping/client.rb | 52 +- .../hris/force_resync/client.rb | 4 +- lib/merge_ruby_client/hris/groups/client.rb | 20 +- .../hris/link_token/client.rb | 21 +- .../hris/linked_accounts/client.rb | 4 +- .../hris/locations/client.rb | 40 +- .../locations_list_request_remote_fields.rb | 13 + ...ocations_list_request_show_enum_origins.rb | 13 + ...ocations_retrieve_request_remote_fields.rb | 13 + ...ions_retrieve_request_show_enum_origins.rb | 13 + .../hris/pay_groups/client.rb | 20 +- .../hris/payroll_runs/client.rb | 20 +- lib/merge_ruby_client/hris/scopes/client.rb | 24 +- lib/merge_ruby_client/hris/teams/client.rb | 20 +- lib/merge_ruby_client/hris/time_off/client.rb | 20 +- .../hris/time_off_balances/client.rb | 20 +- .../hris/timesheet_entries/client.rb | 56 +- .../hris/types/account_details.rb | 13 +- .../hris/types/account_details_and_actions.rb | 13 +- ...account_details_and_actions_status_enum.rb | 2 + .../hris/types/account_integration.rb | 10 +- .../hris/types/audit_log_event.rb | 12 + lib/merge_ruby_client/hris/types/bank_info.rb | 8 +- lib/merge_ruby_client/hris/types/benefit.rb | 8 +- lib/merge_ruby_client/hris/types/company.rb | 8 +- lib/merge_ruby_client/hris/types/deduction.rb | 8 +- lib/merge_ruby_client/hris/types/dependent.rb | 8 +- lib/merge_ruby_client/hris/types/earning.rb | 8 +- lib/merge_ruby_client/hris/types/employee.rb | 13 +- .../hris/types/employee_payroll_run.rb | 8 +- .../hris/types/employee_request.rb | 3 +- .../hris/types/employer_benefit.rb | 18 +- .../hris/types/employment.rb | 20 +- .../hris/types/event_type_enum.rb | 9 + ...field_mapping_api_instance_remote_field.rb | 14 +- .../types/field_permission_deserializer.rb | 28 +- .../field_permission_deserializer_request.rb | 28 +- lib/merge_ruby_client/hris/types/group.rb | 8 +- .../hris/types/language_enum.rb | 12 + lib/merge_ruby_client/hris/types/location.rb | 8 +- lib/merge_ruby_client/hris/types/pay_group.rb | 8 +- .../hris/types/payroll_run.rb | 8 +- .../hris/types/remote_data.rb | 10 +- lib/merge_ruby_client/hris/types/tax.rb | 8 +- lib/merge_ruby_client/hris/types/team.rb | 8 +- lib/merge_ruby_client/hris/types/time_off.rb | 10 +- .../hris/types/time_off_balance.rb | 20 +- .../hris/types/timesheet_entry.rb | 32 +- .../hris/types/timesheet_entry_employee.rb | 56 + .../hris/types/timesheet_entry_request.rb | 14 +- .../types/timesheet_entry_request_employee.rb | 56 + .../ticketing/accounts/client.rb | 20 +- .../ticketing/async_passthrough/client.rb | 10 +- .../async_passthrough_retrieve_response.rb | 57 + .../ticketing/attachments/client.rb | 20 +- .../ticketing/audit_trail/client.rb | 10 +- .../ticketing/collections/client.rb | 126 +- .../types/collections_list_request_expand.rb | 13 + .../collections_retrieve_request_expand.rb | 13 + .../collections_users_list_request_expand.rb | 13 - .../ticketing/comments/client.rb | 20 +- .../ticketing/contacts/client.rb | 20 +- .../ticketing/field_mapping/client.rb | 52 +- .../ticketing/force_resync/client.rb | 4 +- .../ticketing/link_token/client.rb | 21 +- .../ticketing/linked_accounts/client.rb | 4 +- .../ticketing/projects/client.rb | 40 +- .../ticketing/roles/client.rb | 20 +- .../ticketing/scopes/client.rb | 24 +- .../ticketing/tags/client.rb | 20 +- .../ticketing/teams/client.rb | 20 +- .../ticketing/tickets/client.rb | 117 +- ...ckets_collaborators_list_request_expand.rb | 13 - .../types/tickets_list_request_expand.rb | 128 ++ .../types/tickets_list_request_status.rb | 14 - .../types/tickets_retrieve_request_expand.rb | 128 ++ .../tickets_viewers_list_request_expand.rb | 13 + .../ticketing/types/account.rb | 8 +- .../ticketing/types/account_details.rb | 13 +- .../types/account_details_and_actions.rb | 13 +- ...account_details_and_actions_status_enum.rb | 2 + .../ticketing/types/account_integration.rb | 10 +- .../ticketing/types/attachment.rb | 10 +- .../ticketing/types/audit_log_event.rb | 12 + .../ticketing/types/collection.rb | 28 +- .../ticketing/types/collection_teams_item.rb | 55 + .../ticketing/types/comment.rb | 26 +- .../ticketing/types/comment_contact.rb | 4 +- .../ticketing/types/comment_request.rb | 16 +- .../types/comment_request_contact.rb | 4 +- .../ticketing/types/comment_request_user.rb | 4 +- .../ticketing/types/comment_user.rb | 4 +- .../ticketing/types/contact.rb | 8 +- .../ticketing/types/event_type_enum.rb | 9 + ...field_mapping_api_instance_remote_field.rb | 14 +- .../types/field_permission_deserializer.rb | 28 +- .../field_permission_deserializer_request.rb | 28 +- .../ticketing/types/language_enum.rb | 12 + .../ticketing/types/paginated_viewer_list.rb | 80 + .../ticketing/types/patched_ticket_request.rb | 34 +- .../ticketing/types/project.rb | 8 +- .../ticketing/types/remote_data.rb | 10 +- lib/merge_ruby_client/ticketing/types/role.rb | 8 +- lib/merge_ruby_client/ticketing/types/tag.rb | 8 +- lib/merge_ruby_client/ticketing/types/team.rb | 12 +- .../ticketing/types/ticket.rb | 46 +- .../types/ticket_assigned_teams_item.rb | 55 + .../ticketing/types/ticket_request.rb | 38 +- .../ticket_request_assigned_teams_item.rb | 55 + lib/merge_ruby_client/ticketing/types/user.rb | 13 +- .../ticketing/types/viewer.rb | 123 ++ .../ticketing/types/viewer_team.rb | 56 + .../ticketing/types/viewer_user.rb | 56 + .../ticketing/users/client.rb | 20 +- lib/requests.rb | 4 +- lib/types_export.rb | 154 +- merge_ruby_client.gemspec | 2 +- 457 files changed, 24299 insertions(+), 1844 deletions(-) create mode 100644 lib/merge_ruby_client/accounting/async_passthrough/types/async_passthrough_retrieve_response.rb create mode 100644 lib/merge_ruby_client/accounting/async_tasks/client.rb create mode 100644 lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb create mode 100644 lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb create mode 100644 lib/merge_ruby_client/accounting/employees/client.rb create mode 100644 lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb create mode 100644 lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_list_request_expand.rb create mode 100644 lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand.rb create mode 100644 lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_status.rb create mode 100644 lib/merge_ruby_client/accounting/types/account_account_type_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/async_post_task.rb create mode 100644 lib/merge_ruby_client/accounting/types/async_post_task_result.rb create mode 100644 lib/merge_ruby_client/accounting/types/async_post_task_status_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_account.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_account_account_type_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_account_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_account_response.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_transaction.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_transaction_bank_feed_account.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request_bank_feed_account.rb create mode 100644 lib/merge_ruby_client/accounting/types/bank_feed_transaction_response.rb create mode 100644 lib/merge_ruby_client/accounting/types/component_type_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_invoice.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request_invoice.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice_credit_note.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_line_item_request_company.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_line_item_request_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_accounting_period.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_applied_payments_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_company.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_contact.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_line_items_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_payments_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_request_tracking_categories_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_note_response.rb create mode 100644 lib/merge_ruby_client/accounting/types/credit_or_debit_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/employee_company.rb create mode 100644 lib/merge_ruby_client/accounting/types/expense_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/expense_line_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/expense_line_request_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/expense_request_employee.rb rename lib/merge_ruby_client/accounting/types/{accounting_period_status_enum.rb => feed_status_enum.rb} (83%) create mode 100644 lib/merge_ruby_client/accounting/types/field_format_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/field_type_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_accounting_period.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_company.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_general_ledger_transaction_lines_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_account.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_company.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_contact.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/general_ledger_transaction_tracking_categories_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/invoice_applied_credit_notes_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/invoice_applied_vendor_credits_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/invoice_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/invoice_line_item_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/invoice_line_item_request_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/invoice_request_employee.rb create mode 100644 lib/merge_ruby_client/accounting/types/item_format_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/item_purchase_tax_rate.rb create mode 100644 lib/merge_ruby_client/accounting/types/item_sales_tax_rate.rb create mode 100644 lib/merge_ruby_client/accounting/types/item_schema.rb create mode 100644 lib/merge_ruby_client/accounting/types/item_type_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/language_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/paginated_bank_feed_account_list.rb create mode 100644 lib/merge_ruby_client/accounting/types/paginated_bank_feed_transaction_list.rb create mode 100644 lib/merge_ruby_client/accounting/types/paginated_employee_list.rb create mode 100644 lib/merge_ruby_client/accounting/types/paginated_general_ledger_transaction_list.rb create mode 100644 lib/merge_ruby_client/accounting/types/paginated_remote_field_class_list.rb create mode 100644 lib/merge_ruby_client/accounting/types/remote_field.rb create mode 100644 lib/merge_ruby_client/accounting/types/remote_field_class.rb create mode 100644 lib/merge_ruby_client/accounting/types/remote_field_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/remote_field_request_remote_field_class.rb create mode 100644 lib/merge_ruby_client/accounting/types/status_895_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/tax_component.rb create mode 100644 lib/merge_ruby_client/accounting/types/tax_rate_tax_components_item.rb rename lib/merge_ruby_client/accounting/types/{currency_enum.rb => transaction_currency_enum.rb} (99%) create mode 100644 lib/merge_ruby_client/accounting/types/underlying_transaction_type_enum.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice_vendor_credit.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_invoice.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request_invoice.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_line_request_account.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_request.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_request_accounting_period.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_request_company.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_request_tracking_categories_item.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_request_vendor.rb create mode 100644 lib/merge_ruby_client/accounting/types/vendor_credit_response.rb create mode 100644 lib/merge_ruby_client/ats/async_passthrough/types/async_passthrough_retrieve_response.rb create mode 100644 lib/merge_ruby_client/ats/types/language_enum.rb create mode 100644 lib/merge_ruby_client/crm/async_passthrough/types/async_passthrough_retrieve_response.rb create mode 100644 lib/merge_ruby_client/crm/types/language_enum.rb create mode 100644 lib/merge_ruby_client/filestorage/async_passthrough/types/async_passthrough_retrieve_response.rb create mode 100644 lib/merge_ruby_client/filestorage/types/group_child_groups_item.rb create mode 100644 lib/merge_ruby_client/filestorage/types/language_enum.rb create mode 100644 lib/merge_ruby_client/filestorage/types/remote_data.rb create mode 100644 lib/merge_ruby_client/hris/async_passthrough/types/async_passthrough_retrieve_response.rb create mode 100644 lib/merge_ruby_client/hris/locations/types/locations_list_request_remote_fields.rb create mode 100644 lib/merge_ruby_client/hris/locations/types/locations_list_request_show_enum_origins.rb create mode 100644 lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_remote_fields.rb create mode 100644 lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_show_enum_origins.rb create mode 100644 lib/merge_ruby_client/hris/types/language_enum.rb create mode 100644 lib/merge_ruby_client/hris/types/timesheet_entry_employee.rb create mode 100644 lib/merge_ruby_client/hris/types/timesheet_entry_request_employee.rb create mode 100644 lib/merge_ruby_client/ticketing/async_passthrough/types/async_passthrough_retrieve_response.rb create mode 100644 lib/merge_ruby_client/ticketing/collections/types/collections_list_request_expand.rb create mode 100644 lib/merge_ruby_client/ticketing/collections/types/collections_retrieve_request_expand.rb delete mode 100644 lib/merge_ruby_client/ticketing/collections/types/collections_users_list_request_expand.rb delete mode 100644 lib/merge_ruby_client/ticketing/tickets/types/tickets_collaborators_list_request_expand.rb delete mode 100644 lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_status.rb create mode 100644 lib/merge_ruby_client/ticketing/tickets/types/tickets_viewers_list_request_expand.rb create mode 100644 lib/merge_ruby_client/ticketing/types/collection_teams_item.rb create mode 100644 lib/merge_ruby_client/ticketing/types/language_enum.rb create mode 100644 lib/merge_ruby_client/ticketing/types/paginated_viewer_list.rb create mode 100644 lib/merge_ruby_client/ticketing/types/ticket_assigned_teams_item.rb create mode 100644 lib/merge_ruby_client/ticketing/types/ticket_request_assigned_teams_item.rb create mode 100644 lib/merge_ruby_client/ticketing/types/viewer.rb create mode 100644 lib/merge_ruby_client/ticketing/types/viewer_team.rb create mode 100644 lib/merge_ruby_client/ticketing/types/viewer_user.rb diff --git a/lib/merge_ruby_client/accounting/accounting_periods/client.rb b/lib/merge_ruby_client/accounting/accounting_periods/client.rb index 84e2606d..730da130 100644 --- a/lib/merge_ruby_client/accounting/accounting_periods/client.rb +++ b/lib/merge_ruby_client/accounting/accounting_periods/client.rb @@ -20,9 +20,14 @@ def initialize(request_client:) # Returns a list of `AccountingPeriod` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaginatedAccountingPeriodList] @@ -33,7 +38,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.accounting_periods.list - def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, page_size: nil, request_options: nil) + def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, + page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -48,6 +54,7 @@ def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, page_ "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -108,9 +115,14 @@ def initialize(request_client:) # Returns a list of `AccountingPeriod` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaginatedAccountingPeriodList] @@ -121,7 +133,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.accounting_periods.list - def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, page_size: nil, request_options: nil) + def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, + page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -137,6 +150,7 @@ def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, page_ "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? diff --git a/lib/merge_ruby_client/accounting/accounts/client.rb b/lib/merge_ruby_client/accounting/accounts/client.rb index 89ba9257..5a12b6e3 100644 --- a/lib/merge_ruby_client/accounting/accounts/client.rb +++ b/lib/merge_ruby_client/accounting/accounts/client.rb @@ -27,15 +27,21 @@ def initialize(request_client:) # Returns a list of `Account` objects. # + # @param account_type [String] If provided, will only provide accounts with the passed in enum. # @param company_id [String] If provided, will only return accounts for this company. # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -54,8 +60,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.accounts.list - def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + def list(account_type: nil, company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -67,6 +73,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, }.compact req.params = { **(request_options&.additional_query_parameters || {}), + "account_type": account_type, "company_id": company_id, "created_after": created_after, "created_before": created_before, @@ -74,6 +81,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -98,9 +106,10 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :description (String) # * :classification (Merge::Accounting::ClassificationEnum) # * :type (String) + # * :account_type (Merge::Accounting::AccountAccountTypeEnum) # * :status (Merge::Accounting::AccountStatusEnum) # * :current_balance (Float) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :account_number (String) # * :parent_account (String) # * :company (String) @@ -227,15 +236,21 @@ def initialize(request_client:) # Returns a list of `Account` objects. # + # @param account_type [String] If provided, will only provide accounts with the passed in enum. # @param company_id [String] If provided, will only return accounts for this company. # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -254,8 +269,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.accounts.list - def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + def list(account_type: nil, company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -268,6 +283,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, }.compact req.params = { **(request_options&.additional_query_parameters || {}), + "account_type": account_type, "company_id": company_id, "created_after": created_after, "created_before": created_before, @@ -275,6 +291,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -300,9 +317,10 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :description (String) # * :classification (Merge::Accounting::ClassificationEnum) # * :type (String) + # * :account_type (Merge::Accounting::AccountAccountTypeEnum) # * :status (Merge::Accounting::AccountStatusEnum) # * :current_balance (Float) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :account_number (String) # * :parent_account (String) # * :company (String) diff --git a/lib/merge_ruby_client/accounting/async_passthrough/client.rb b/lib/merge_ruby_client/accounting/async_passthrough/client.rb index d63ce7c6..28bba7e2 100644 --- a/lib/merge_ruby_client/accounting/async_passthrough/client.rb +++ b/lib/merge_ruby_client/accounting/async_passthrough/client.rb @@ -3,7 +3,7 @@ require_relative "../../../requests" require_relative "../types/data_passthrough_request" require_relative "../types/async_passthrough_reciept" -require_relative "../types/remote_response" +require_relative "types/async_passthrough_retrieve_response" require "async" module Merge @@ -61,7 +61,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Accounting::RemoteResponse] + # @return [Merge::Accounting::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -87,7 +87,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Accounting::RemoteResponse.from_json(json_object: response.body) + Merge::Accounting::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end @@ -146,7 +146,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Accounting::RemoteResponse] + # @return [Merge::Accounting::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -173,7 +173,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Accounting::RemoteResponse.from_json(json_object: response.body) + Merge::Accounting::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end end diff --git a/lib/merge_ruby_client/accounting/async_passthrough/types/async_passthrough_retrieve_response.rb b/lib/merge_ruby_client/accounting/async_passthrough/types/async_passthrough_retrieve_response.rb new file mode 100644 index 00000000..582ee663 --- /dev/null +++ b/lib/merge_ruby_client/accounting/async_passthrough/types/async_passthrough_retrieve_response.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "../../types/remote_response" + +module Merge + module Accounting + class AsyncPassthrough + class AsyncPassthroughRetrieveResponse + # Deserialize a JSON object to an instance of AsyncPassthroughRetrieveResponse + # + # @param json_object [String] + # @return [Merge::Accounting::AsyncPassthrough::AsyncPassthroughRetrieveResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + Merge::Accounting::RemoteResponse.validate_raw(obj: struct) + return Merge::Accounting::RemoteResponse.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return Merge::Accounting::RemoteResponse.validate_raw(obj: obj) + rescue StandardError + # noop + end + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/async_tasks/client.rb b/lib/merge_ruby_client/accounting/async_tasks/client.rb new file mode 100644 index 00000000..8a994860 --- /dev/null +++ b/lib/merge_ruby_client/accounting/async_tasks/client.rb @@ -0,0 +1,99 @@ +# frozen_string_literal: true + +require_relative "../../../requests" +require_relative "../types/async_post_task" +require "async" + +module Merge + module Accounting + class AsyncTasksClient + # @return [Merge::RequestClient] + attr_reader :request_client + + # @param request_client [Merge::RequestClient] + # @return [Merge::Accounting::AsyncTasksClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns an `AsyncPostTask` object with the given `id`. + # + # @param id [String] + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::AsyncPostTask] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.async_tasks.retrieve(id: "id") + def retrieve(id:, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/async-tasks/#{id}" + end + Merge::Accounting::AsyncPostTask.from_json(json_object: response.body) + end + end + + class AsyncAsyncTasksClient + # @return [Merge::AsyncRequestClient] + attr_reader :request_client + + # @param request_client [Merge::AsyncRequestClient] + # @return [Merge::Accounting::AsyncAsyncTasksClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns an `AsyncPostTask` object with the given `id`. + # + # @param id [String] + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::AsyncPostTask] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.async_tasks.retrieve(id: "id") + def retrieve(id:, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/async-tasks/#{id}" + end + Merge::Accounting::AsyncPostTask.from_json(json_object: response.body) + end + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/attachments/client.rb b/lib/merge_ruby_client/accounting/attachments/client.rb index c42a610b..3e362747 100644 --- a/lib/merge_ruby_client/accounting/attachments/client.rb +++ b/lib/merge_ruby_client/accounting/attachments/client.rb @@ -27,9 +27,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -45,7 +50,7 @@ def initialize(request_client:) # ) # api.accounting.attachments.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -201,9 +207,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -219,7 +230,7 @@ def initialize(request_client:) # ) # api.accounting.attachments.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -238,6 +249,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/audit_trail/client.rb b/lib/merge_ruby_client/accounting/audit_trail/client.rb index f850484a..27a8b6da 100644 --- a/lib/merge_ruby_client/accounting/audit_trail/client.rb +++ b/lib/merge_ruby_client/accounting/audit_trail/client.rb @@ -38,9 +38,13 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, - # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED` + # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + # `END_USER_CREDENTIALS_ACCESSED` # @param page_size [Integer] Number of results to return per page. # @param start_date [String] If included, will only include audit trail events that occurred after this time # @param user_email [String] If provided, this will return events associated with the specified user email. @@ -116,9 +120,13 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, - # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED` + # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, + # `END_USER_CREDENTIALS_ACCESSED` # @param page_size [Integer] Number of results to return per page. # @param start_date [String] If included, will only include audit trail events that occurred after this time # @param user_email [String] If provided, this will return events associated with the specified user email. diff --git a/lib/merge_ruby_client/accounting/balance_sheets/client.rb b/lib/merge_ruby_client/accounting/balance_sheets/client.rb index c5c219da..b4cae9c1 100644 --- a/lib/merge_ruby_client/accounting/balance_sheets/client.rb +++ b/lib/merge_ruby_client/accounting/balance_sheets/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.accounting.balance_sheets.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -134,9 +140,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.accounting.balance_sheets.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -172,6 +183,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb b/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb new file mode 100644 index 00000000..26d77fae --- /dev/null +++ b/lib/merge_ruby_client/accounting/bank_feed_accounts/client.rb @@ -0,0 +1,369 @@ +# frozen_string_literal: true + +require_relative "../../../requests" +require_relative "../types/paginated_bank_feed_account_list" +require_relative "../types/bank_feed_account_request" +require_relative "../types/bank_feed_account_response" +require_relative "../types/bank_feed_account" +require_relative "../types/meta_response" +require "async" + +module Merge + module Accounting + class BankFeedAccountsClient + # @return [Merge::RequestClient] + attr_reader :request_client + + # @param request_client [Merge::RequestClient] + # @return [Merge::Accounting::BankFeedAccountsClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `BankFeedAccount` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedBankFeedAccountList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.list + def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, + page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts" + end + Merge::Accounting::PaginatedBankFeedAccountList.from_json(json_object: response.body) + end + + # Creates a `BankFeedAccount` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::BankFeedAccountRequest, as a Hash + # * :source_account_id (String) + # * :target_account_id (String) + # * :source_account_name (String) + # * :source_account_number (String) + # * :target_account_name (String) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :feed_status (Merge::Accounting::FeedStatusEnum) + # * :feed_start_date (DateTime) + # * :source_account_balance (Float) + # * :account_type (Merge::Accounting::BankFeedAccountAccountTypeEnum) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedAccountResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts" + end + Merge::Accounting::BankFeedAccountResponse.from_json(json_object: response.body) + end + + # Returns a `BankFeedAccount` object with the given `id`. + # + # @param id [String] + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedAccount] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.retrieve(id: "id") + def retrieve(id:, include_remote_data: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts/#{id}" + end + Merge::Accounting::BankFeedAccount.from_json(json_object: response.body) + end + + # Returns metadata for `BankFeedAccount` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end + end + + class AsyncBankFeedAccountsClient + # @return [Merge::AsyncRequestClient] + attr_reader :request_client + + # @param request_client [Merge::AsyncRequestClient] + # @return [Merge::Accounting::AsyncBankFeedAccountsClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `BankFeedAccount` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedBankFeedAccountList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.list + def list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, + page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts" + end + Merge::Accounting::PaginatedBankFeedAccountList.from_json(json_object: response.body) + end + end + + # Creates a `BankFeedAccount` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::BankFeedAccountRequest, as a Hash + # * :source_account_id (String) + # * :target_account_id (String) + # * :source_account_name (String) + # * :source_account_number (String) + # * :target_account_name (String) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :feed_status (Merge::Accounting::FeedStatusEnum) + # * :feed_start_date (DateTime) + # * :source_account_balance (Float) + # * :account_type (Merge::Accounting::BankFeedAccountAccountTypeEnum) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedAccountResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + Async do + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts" + end + Merge::Accounting::BankFeedAccountResponse.from_json(json_object: response.body) + end + end + + # Returns a `BankFeedAccount` object with the given `id`. + # + # @param id [String] + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedAccount] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.retrieve(id: "id") + def retrieve(id:, include_remote_data: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts/#{id}" + end + Merge::Accounting::BankFeedAccount.from_json(json_object: response.body) + end + end + + # Returns metadata for `BankFeedAccount` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_accounts.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-accounts/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb b/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb new file mode 100644 index 00000000..df882d05 --- /dev/null +++ b/lib/merge_ruby_client/accounting/bank_feed_transactions/client.rb @@ -0,0 +1,408 @@ +# frozen_string_literal: true + +require_relative "../../../requests" +require "date" +require_relative "../types/paginated_bank_feed_transaction_list" +require_relative "../types/bank_feed_transaction_request_request" +require_relative "../types/bank_feed_transaction_response" +require_relative "../types/bank_feed_transaction" +require_relative "../types/meta_response" +require "async" + +module Merge + module Accounting + class BankFeedTransactionsClient + # @return [Merge::RequestClient] + attr_reader :request_client + + # @param request_client [Merge::RequestClient] + # @return [Merge::Accounting::BankFeedTransactionsClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `BankFeedTransaction` objects. + # + # @param created_after [DateTime] If provided, will only return objects created after this datetime. + # @param created_before [DateTime] If provided, will only return objects created before this datetime. + # @param cursor [String] The pagination cursor value. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_processed [Boolean] If provided, will only return bank feed transactions with this is_processed + # value + # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. + # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be + # returned. + # @param page_size [Integer] Number of results to return per page. + # @param remote_id [String] The API provider's ID for the given object. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedBankFeedTransactionList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.list + def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, + include_remote_data: nil, include_shell_data: nil, is_processed: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "created_after": created_after, + "created_before": created_before, + "cursor": cursor, + "expand": expand, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_processed": is_processed, + "modified_after": modified_after, + "modified_before": modified_before, + "page_size": page_size, + "remote_id": remote_id + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions" + end + Merge::Accounting::PaginatedBankFeedTransactionList.from_json(json_object: response.body) + end + + # Creates a `BankFeedTransaction` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::BankFeedTransactionRequestRequest, as a Hash + # * :bank_feed_account (Hash) + # * :transaction_date (DateTime) + # * :posted_date (DateTime) + # * :amount (Float) + # * :description (String) + # * :transaction_type (String) + # * :payee (String) + # * :credit_or_debit (Merge::Accounting::CreditOrDebitEnum) + # * :source_transaction_id (String) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedTransactionResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions" + end + Merge::Accounting::BankFeedTransactionResponse.from_json(json_object: response.body) + end + + # Returns a `BankFeedTransaction` object with the given `id`. + # + # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedTransaction] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.retrieve(id: "id") + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "expand": expand, + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions/#{id}" + end + Merge::Accounting::BankFeedTransaction.from_json(json_object: response.body) + end + + # Returns metadata for `BankFeedTransaction` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end + end + + class AsyncBankFeedTransactionsClient + # @return [Merge::AsyncRequestClient] + attr_reader :request_client + + # @param request_client [Merge::AsyncRequestClient] + # @return [Merge::Accounting::AsyncBankFeedTransactionsClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `BankFeedTransaction` objects. + # + # @param created_after [DateTime] If provided, will only return objects created after this datetime. + # @param created_before [DateTime] If provided, will only return objects created before this datetime. + # @param cursor [String] The pagination cursor value. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_processed [Boolean] If provided, will only return bank feed transactions with this is_processed + # value + # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. + # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be + # returned. + # @param page_size [Integer] Number of results to return per page. + # @param remote_id [String] The API provider's ID for the given object. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedBankFeedTransactionList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.list + def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, + include_remote_data: nil, include_shell_data: nil, is_processed: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "created_after": created_after, + "created_before": created_before, + "cursor": cursor, + "expand": expand, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_processed": is_processed, + "modified_after": modified_after, + "modified_before": modified_before, + "page_size": page_size, + "remote_id": remote_id + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions" + end + Merge::Accounting::PaginatedBankFeedTransactionList.from_json(json_object: response.body) + end + end + + # Creates a `BankFeedTransaction` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::BankFeedTransactionRequestRequest, as a Hash + # * :bank_feed_account (Hash) + # * :transaction_date (DateTime) + # * :posted_date (DateTime) + # * :amount (Float) + # * :description (String) + # * :transaction_type (String) + # * :payee (String) + # * :credit_or_debit (Merge::Accounting::CreditOrDebitEnum) + # * :source_transaction_id (String) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedTransactionResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + Async do + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions" + end + Merge::Accounting::BankFeedTransactionResponse.from_json(json_object: response.body) + end + end + + # Returns a `BankFeedTransaction` object with the given `id`. + # + # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::BankFeedTransaction] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.retrieve(id: "id") + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "expand": expand, + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions/#{id}" + end + Merge::Accounting::BankFeedTransaction.from_json(json_object: response.body) + end + end + + # Returns metadata for `BankFeedTransaction` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.bank_feed_transactions.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/bank-feed-transactions/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb b/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb index 39e2be04..50b61781 100644 --- a/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb +++ b/lib/merge_ruby_client/accounting/cash_flow_statements/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.accounting.cash_flow_statements.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -134,9 +140,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.accounting.cash_flow_statements.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -172,6 +183,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/client.rb b/lib/merge_ruby_client/accounting/client.rb index 22a18d2c..a116268a 100644 --- a/lib/merge_ruby_client/accounting/client.rb +++ b/lib/merge_ruby_client/accounting/client.rb @@ -7,18 +7,23 @@ require_relative "accounts/client" require_relative "addresses/client" require_relative "async_passthrough/client" +require_relative "async_tasks/client" require_relative "attachments/client" require_relative "audit_trail/client" require_relative "available_actions/client" require_relative "balance_sheets/client" +require_relative "bank_feed_accounts/client" +require_relative "bank_feed_transactions/client" require_relative "cash_flow_statements/client" require_relative "company_info/client" require_relative "contacts/client" require_relative "credit_notes/client" require_relative "scopes/client" require_relative "delete_account/client" +require_relative "employees/client" require_relative "expenses/client" require_relative "field_mapping/client" +require_relative "general_ledger_transactions/client" require_relative "generate_key/client" require_relative "income_statements/client" require_relative "invoices/client" @@ -55,6 +60,8 @@ class Client attr_reader :addresses # @return [Merge::Accounting::AsyncPassthroughClient] attr_reader :async_passthrough + # @return [Merge::Accounting::AsyncTasksClient] + attr_reader :async_tasks # @return [Merge::Accounting::AttachmentsClient] attr_reader :attachments # @return [Merge::Accounting::AuditTrailClient] @@ -63,6 +70,10 @@ class Client attr_reader :available_actions # @return [Merge::Accounting::BalanceSheetsClient] attr_reader :balance_sheets + # @return [Merge::Accounting::BankFeedAccountsClient] + attr_reader :bank_feed_accounts + # @return [Merge::Accounting::BankFeedTransactionsClient] + attr_reader :bank_feed_transactions # @return [Merge::Accounting::CashFlowStatementsClient] attr_reader :cash_flow_statements # @return [Merge::Accounting::CompanyInfoClient] @@ -75,10 +86,14 @@ class Client attr_reader :scopes # @return [Merge::Accounting::DeleteAccountClient] attr_reader :delete_account + # @return [Merge::Accounting::EmployeesClient] + attr_reader :employees # @return [Merge::Accounting::ExpensesClient] attr_reader :expenses # @return [Merge::Accounting::FieldMappingClient] attr_reader :field_mapping + # @return [Merge::Accounting::GeneralLedgerTransactionsClient] + attr_reader :general_ledger_transactions # @return [Merge::Accounting::GenerateKeyClient] attr_reader :generate_key # @return [Merge::Accounting::IncomeStatementsClient] @@ -129,18 +144,23 @@ def initialize(request_client:) @accounts = Merge::Accounting::AccountsClient.new(request_client: request_client) @addresses = Merge::Accounting::AddressesClient.new(request_client: request_client) @async_passthrough = Merge::Accounting::AsyncPassthroughClient.new(request_client: request_client) + @async_tasks = Merge::Accounting::AsyncTasksClient.new(request_client: request_client) @attachments = Merge::Accounting::AttachmentsClient.new(request_client: request_client) @audit_trail = Merge::Accounting::AuditTrailClient.new(request_client: request_client) @available_actions = Merge::Accounting::AvailableActionsClient.new(request_client: request_client) @balance_sheets = Merge::Accounting::BalanceSheetsClient.new(request_client: request_client) + @bank_feed_accounts = Merge::Accounting::BankFeedAccountsClient.new(request_client: request_client) + @bank_feed_transactions = Merge::Accounting::BankFeedTransactionsClient.new(request_client: request_client) @cash_flow_statements = Merge::Accounting::CashFlowStatementsClient.new(request_client: request_client) @company_info = Merge::Accounting::CompanyInfoClient.new(request_client: request_client) @contacts = Merge::Accounting::ContactsClient.new(request_client: request_client) @credit_notes = Merge::Accounting::CreditNotesClient.new(request_client: request_client) @scopes = Merge::Accounting::ScopesClient.new(request_client: request_client) @delete_account = Merge::Accounting::DeleteAccountClient.new(request_client: request_client) + @employees = Merge::Accounting::EmployeesClient.new(request_client: request_client) @expenses = Merge::Accounting::ExpensesClient.new(request_client: request_client) @field_mapping = Merge::Accounting::FieldMappingClient.new(request_client: request_client) + @general_ledger_transactions = Merge::Accounting::GeneralLedgerTransactionsClient.new(request_client: request_client) @generate_key = Merge::Accounting::GenerateKeyClient.new(request_client: request_client) @income_statements = Merge::Accounting::IncomeStatementsClient.new(request_client: request_client) @invoices = Merge::Accounting::InvoicesClient.new(request_client: request_client) @@ -177,6 +197,8 @@ class AsyncClient attr_reader :addresses # @return [Merge::Accounting::AsyncAsyncPassthroughClient] attr_reader :async_passthrough + # @return [Merge::Accounting::AsyncAsyncTasksClient] + attr_reader :async_tasks # @return [Merge::Accounting::AsyncAttachmentsClient] attr_reader :attachments # @return [Merge::Accounting::AsyncAuditTrailClient] @@ -185,6 +207,10 @@ class AsyncClient attr_reader :available_actions # @return [Merge::Accounting::AsyncBalanceSheetsClient] attr_reader :balance_sheets + # @return [Merge::Accounting::AsyncBankFeedAccountsClient] + attr_reader :bank_feed_accounts + # @return [Merge::Accounting::AsyncBankFeedTransactionsClient] + attr_reader :bank_feed_transactions # @return [Merge::Accounting::AsyncCashFlowStatementsClient] attr_reader :cash_flow_statements # @return [Merge::Accounting::AsyncCompanyInfoClient] @@ -197,10 +223,14 @@ class AsyncClient attr_reader :scopes # @return [Merge::Accounting::AsyncDeleteAccountClient] attr_reader :delete_account + # @return [Merge::Accounting::AsyncEmployeesClient] + attr_reader :employees # @return [Merge::Accounting::AsyncExpensesClient] attr_reader :expenses # @return [Merge::Accounting::AsyncFieldMappingClient] attr_reader :field_mapping + # @return [Merge::Accounting::AsyncGeneralLedgerTransactionsClient] + attr_reader :general_ledger_transactions # @return [Merge::Accounting::AsyncGenerateKeyClient] attr_reader :generate_key # @return [Merge::Accounting::AsyncIncomeStatementsClient] @@ -251,18 +281,23 @@ def initialize(request_client:) @accounts = Merge::Accounting::AsyncAccountsClient.new(request_client: request_client) @addresses = Merge::Accounting::AsyncAddressesClient.new(request_client: request_client) @async_passthrough = Merge::Accounting::AsyncAsyncPassthroughClient.new(request_client: request_client) + @async_tasks = Merge::Accounting::AsyncAsyncTasksClient.new(request_client: request_client) @attachments = Merge::Accounting::AsyncAttachmentsClient.new(request_client: request_client) @audit_trail = Merge::Accounting::AsyncAuditTrailClient.new(request_client: request_client) @available_actions = Merge::Accounting::AsyncAvailableActionsClient.new(request_client: request_client) @balance_sheets = Merge::Accounting::AsyncBalanceSheetsClient.new(request_client: request_client) + @bank_feed_accounts = Merge::Accounting::AsyncBankFeedAccountsClient.new(request_client: request_client) + @bank_feed_transactions = Merge::Accounting::AsyncBankFeedTransactionsClient.new(request_client: request_client) @cash_flow_statements = Merge::Accounting::AsyncCashFlowStatementsClient.new(request_client: request_client) @company_info = Merge::Accounting::AsyncCompanyInfoClient.new(request_client: request_client) @contacts = Merge::Accounting::AsyncContactsClient.new(request_client: request_client) @credit_notes = Merge::Accounting::AsyncCreditNotesClient.new(request_client: request_client) @scopes = Merge::Accounting::AsyncScopesClient.new(request_client: request_client) @delete_account = Merge::Accounting::AsyncDeleteAccountClient.new(request_client: request_client) + @employees = Merge::Accounting::AsyncEmployeesClient.new(request_client: request_client) @expenses = Merge::Accounting::AsyncExpensesClient.new(request_client: request_client) @field_mapping = Merge::Accounting::AsyncFieldMappingClient.new(request_client: request_client) + @general_ledger_transactions = Merge::Accounting::AsyncGeneralLedgerTransactionsClient.new(request_client: request_client) @generate_key = Merge::Accounting::AsyncGenerateKeyClient.new(request_client: request_client) @income_statements = Merge::Accounting::AsyncIncomeStatementsClient.new(request_client: request_client) @invoices = Merge::Accounting::AsyncInvoicesClient.new(request_client: request_client) diff --git a/lib/merge_ruby_client/accounting/company_info/client.rb b/lib/merge_ruby_client/accounting/company_info/client.rb index f52983c6..c01d0403 100644 --- a/lib/merge_ruby_client/accounting/company_info/client.rb +++ b/lib/merge_ruby_client/accounting/company_info/client.rb @@ -27,9 +27,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::CompanyInfo::CompanyInfoListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -45,7 +50,7 @@ def initialize(request_client:) # ) # api.accounting.company_info.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -133,9 +139,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::CompanyInfo::CompanyInfoListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -151,7 +162,7 @@ def initialize(request_client:) # ) # api.accounting.company_info.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -170,6 +181,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/contacts/client.rb b/lib/merge_ruby_client/accounting/contacts/client.rb index 98cbdb06..98dcb95f 100644 --- a/lib/merge_ruby_client/accounting/contacts/client.rb +++ b/lib/merge_ruby_client/accounting/contacts/client.rb @@ -9,6 +9,7 @@ require_relative "types/contacts_retrieve_request_expand" require_relative "../types/contact" require_relative "../types/meta_response" +require_relative "../types/paginated_remote_field_class_list" require "async" module Merge @@ -29,16 +30,25 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. + # @param email_address [String] If provided, will only return Contacts that match this email. # @param expand [Merge::Accounting::Contacts::ContactsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_customer [String] If provided, will only return Contacts that are denoted as customers. # @param is_supplier [String] If provided, will only return Contacts that are denoted as suppliers. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. + # @param name [String] If provided, will only return Contacts that match this name. # @param page_size [Integer] Number of results to return per page. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param remote_id [String] The API provider's ID for the given object. @@ -54,8 +64,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.contacts.list - def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, is_customer: nil, is_supplier: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, email_address: nil, expand: nil, + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, is_customer: nil, is_supplier: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,13 +81,17 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "created_after": created_after, "created_before": created_before, "cursor": cursor, + "email_address": email_address, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_customer": is_customer, "is_supplier": is_supplier, "modified_after": modified_after, "modified_before": modified_before, + "name": name, "page_size": page_size, "remote_fields": remote_fields, "remote_id": remote_id, @@ -108,6 +122,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :phone_numbers (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::ContactResponse] # @example @@ -145,6 +160,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn @@ -158,8 +175,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.contacts.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, show_enum_origins: nil, - request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, remote_fields: nil, + show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -173,6 +190,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho **(request_options&.additional_query_parameters || {}), "expand": expand, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, "remote_fields": remote_fields, "show_enum_origins": show_enum_origins }.compact @@ -215,6 +233,57 @@ def meta_post_retrieve(request_options: nil) end Merge::Accounting::MetaResponse.from_json(json_object: response.body) end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.contacts.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/contacts/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end end class AsyncContactsClient @@ -233,16 +302,25 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. + # @param email_address [String] If provided, will only return Contacts that match this email. # @param expand [Merge::Accounting::Contacts::ContactsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_customer [String] If provided, will only return Contacts that are denoted as customers. # @param is_supplier [String] If provided, will only return Contacts that are denoted as suppliers. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. + # @param name [String] If provided, will only return Contacts that match this name. # @param page_size [Integer] Number of results to return per page. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param remote_id [String] The API provider's ID for the given object. @@ -258,8 +336,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.contacts.list - def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, is_customer: nil, is_supplier: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, email_address: nil, expand: nil, + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, is_customer: nil, is_supplier: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -276,13 +354,17 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "created_after": created_after, "created_before": created_before, "cursor": cursor, + "email_address": email_address, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_customer": is_customer, "is_supplier": is_supplier, "modified_after": modified_after, "modified_before": modified_before, + "name": name, "page_size": page_size, "remote_fields": remote_fields, "remote_id": remote_id, @@ -314,6 +396,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :phone_numbers (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::ContactResponse] # @example @@ -353,6 +436,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn @@ -366,8 +451,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.contacts.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, show_enum_origins: nil, - request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, remote_fields: nil, + show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -382,6 +467,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho **(request_options&.additional_query_parameters || {}), "expand": expand, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, "remote_fields": remote_fields, "show_enum_origins": show_enum_origins }.compact @@ -427,6 +513,59 @@ def meta_post_retrieve(request_options: nil) Merge::Accounting::MetaResponse.from_json(json_object: response.body) end end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.contacts.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/contacts/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/credit_notes/client.rb b/lib/merge_ruby_client/accounting/credit_notes/client.rb index 0e002df3..ec7ffcf2 100644 --- a/lib/merge_ruby_client/accounting/credit_notes/client.rb +++ b/lib/merge_ruby_client/accounting/credit_notes/client.rb @@ -6,10 +6,13 @@ require_relative "types/credit_notes_list_request_remote_fields" require_relative "types/credit_notes_list_request_show_enum_origins" require_relative "../types/paginated_credit_note_list" +require_relative "../types/credit_note_request" +require_relative "../types/credit_note_response" require_relative "types/credit_notes_retrieve_request_expand" require_relative "types/credit_notes_retrieve_request_remote_fields" require_relative "types/credit_notes_retrieve_request_show_enum_origins" require_relative "../types/credit_note" +require_relative "../types/meta_response" require "async" module Merge @@ -32,9 +35,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::CreditNotes::CreditNotesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -56,7 +64,7 @@ def initialize(request_client:) # ) # api.accounting.credit_notes.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -75,6 +83,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -92,6 +101,59 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, Merge::Accounting::PaginatedCreditNoteList.from_json(json_object: response.body) end + # Creates a `CreditNote` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::CreditNoteRequest, as a Hash + # * :transaction_date (DateTime) + # * :status (Merge::Accounting::CreditNoteStatusEnum) + # * :number (String) + # * :contact (Hash) + # * :company (Hash) + # * :exchange_rate (String) + # * :total_amount (Float) + # * :remaining_credit (Float) + # * :inclusive_of_tax (Boolean) + # * :line_items (Array) + # * :tracking_categories (Array) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :payments (Array) + # * :applied_payments (Array) + # * :accounting_period (Hash) + # * :applied_to_lines (Array) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::CreditNoteResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.credit_notes.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/credit-notes" + end + Merge::Accounting::CreditNoteResponse.from_json(json_object: response.body) + end + # Returns a `CreditNote` object with the given `id`. # # @param id [String] @@ -137,6 +199,38 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho end Merge::Accounting::CreditNote.from_json(json_object: response.body) end + + # Returns metadata for `CreditNote` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.credit_notes.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/credit-notes/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end end class AsyncCreditNotesClient @@ -157,9 +251,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::CreditNotes::CreditNotesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -181,7 +280,7 @@ def initialize(request_client:) # ) # api.accounting.credit_notes.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -201,6 +300,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -219,6 +319,61 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, end end + # Creates a `CreditNote` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::CreditNoteRequest, as a Hash + # * :transaction_date (DateTime) + # * :status (Merge::Accounting::CreditNoteStatusEnum) + # * :number (String) + # * :contact (Hash) + # * :company (Hash) + # * :exchange_rate (String) + # * :total_amount (Float) + # * :remaining_credit (Float) + # * :inclusive_of_tax (Boolean) + # * :line_items (Array) + # * :tracking_categories (Array) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :payments (Array) + # * :applied_payments (Array) + # * :accounting_period (Hash) + # * :applied_to_lines (Array) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::CreditNoteResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.credit_notes.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + Async do + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/credit-notes" + end + Merge::Accounting::CreditNoteResponse.from_json(json_object: response.body) + end + end + # Returns a `CreditNote` object with the given `id`. # # @param id [String] @@ -266,6 +421,40 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho Merge::Accounting::CreditNote.from_json(json_object: response.body) end end + + # Returns metadata for `CreditNote` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.credit_notes.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/credit-notes/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/employees/client.rb b/lib/merge_ruby_client/accounting/employees/client.rb new file mode 100644 index 00000000..daace99b --- /dev/null +++ b/lib/merge_ruby_client/accounting/employees/client.rb @@ -0,0 +1,216 @@ +# frozen_string_literal: true + +require_relative "../../../requests" +require_relative "../types/paginated_employee_list" +require_relative "../types/employee" +require "async" + +module Merge + module Accounting + class EmployeesClient + # @return [Merge::RequestClient] + attr_reader :request_client + + # @param request_client [Merge::RequestClient] + # @return [Merge::Accounting::EmployeesClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `Employee` objects. + # + # @param cursor [String] The pagination cursor value. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedEmployeeList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.employees.list + def list(cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, + page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "expand": expand, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/employees" + end + Merge::Accounting::PaginatedEmployeeList.from_json(json_object: response.body) + end + + # Returns an `Employee` object with the given `id`. + # + # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::Employee] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.employees.retrieve(id: "id") + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "expand": expand, + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/employees/#{id}" + end + Merge::Accounting::Employee.from_json(json_object: response.body) + end + end + + class AsyncEmployeesClient + # @return [Merge::AsyncRequestClient] + attr_reader :request_client + + # @param request_client [Merge::AsyncRequestClient] + # @return [Merge::Accounting::AsyncEmployeesClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `Employee` objects. + # + # @param cursor [String] The pagination cursor value. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedEmployeeList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.employees.list + def list(cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, + page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "expand": expand, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/employees" + end + Merge::Accounting::PaginatedEmployeeList.from_json(json_object: response.body) + end + end + + # Returns an `Employee` object with the given `id`. + # + # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::Employee] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.employees.retrieve(id: "id") + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "expand": expand, + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/employees/#{id}" + end + Merge::Accounting::Employee.from_json(json_object: response.body) + end + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/expenses/client.rb b/lib/merge_ruby_client/accounting/expenses/client.rb index 3478ecb5..fc288fe9 100644 --- a/lib/merge_ruby_client/accounting/expenses/client.rb +++ b/lib/merge_ruby_client/accounting/expenses/client.rb @@ -8,6 +8,7 @@ require_relative "../types/expense_response" require_relative "types/expenses_retrieve_request_expand" require_relative "../types/expense" +require_relative "../types/paginated_remote_field_class_list" require_relative "../types/meta_response" require "async" @@ -31,9 +32,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Expenses::ExpensesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -51,7 +59,7 @@ def initialize(request_client:) # ) # api.accounting.expenses.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -70,6 +78,8 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -96,15 +106,18 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :total_amount (Float) # * :sub_total (Float) # * :total_tax_amount (Float) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) + # * :inclusive_of_tax (Boolean) # * :company (Hash) + # * :employee (Hash) # * :memo (String) # * :lines (Array) # * :tracking_categories (Array) # * :accounting_period (Hash) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::ExpenseResponse] # @example @@ -142,6 +155,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::Expense] # @example @@ -151,7 +166,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.expenses.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -164,7 +179,8 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) req.params = { **(request_options&.additional_query_parameters || {}), "expand": expand, - "include_remote_data": include_remote_data + "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact @@ -174,6 +190,57 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) Merge::Accounting::Expense.from_json(json_object: response.body) end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.expenses.lines_remote_field_classes_list + def lines_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/expenses/lines/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + # Returns metadata for `Expense` POSTs. # # @param request_options [Merge::RequestOptions] @@ -205,6 +272,57 @@ def meta_post_retrieve(request_options: nil) end Merge::Accounting::MetaResponse.from_json(json_object: response.body) end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.expenses.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/expenses/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end end class AsyncExpensesClient @@ -225,9 +343,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Expenses::ExpensesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -245,7 +370,7 @@ def initialize(request_client:) # ) # api.accounting.expenses.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -265,6 +390,8 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -292,15 +419,18 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :total_amount (Float) # * :sub_total (Float) # * :total_tax_amount (Float) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) + # * :inclusive_of_tax (Boolean) # * :company (Hash) + # * :employee (Hash) # * :memo (String) # * :lines (Array) # * :tracking_categories (Array) # * :accounting_period (Hash) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::ExpenseResponse] # @example @@ -340,6 +470,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::Expense] # @example @@ -349,7 +481,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.expenses.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -363,7 +495,8 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) req.params = { **(request_options&.additional_query_parameters || {}), "expand": expand, - "include_remote_data": include_remote_data + "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact @@ -374,6 +507,59 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) end end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.expenses.lines_remote_field_classes_list + def lines_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/expenses/lines/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end + # Returns metadata for `Expense` POSTs. # # @param request_options [Merge::RequestOptions] @@ -407,6 +593,59 @@ def meta_post_retrieve(request_options: nil) Merge::Accounting::MetaResponse.from_json(json_object: response.body) end end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.expenses.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/expenses/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/expenses/types/expenses_list_request_expand.rb b/lib/merge_ruby_client/accounting/expenses/types/expenses_list_request_expand.rb index f564f52d..3ee3026c 100644 --- a/lib/merge_ruby_client/accounting/expenses/types/expenses_list_request_expand.rb +++ b/lib/merge_ruby_client/accounting/expenses/types/expenses_list_request_expand.rb @@ -8,33 +8,65 @@ class ExpensesListRequestExpand ACCOUNT_ACCOUNTING_PERIOD = "account,accounting_period" ACCOUNT_COMPANY = "account,company" ACCOUNT_COMPANY_ACCOUNTING_PERIOD = "account,company,accounting_period" + ACCOUNT_COMPANY_EMPLOYEE = "account,company,employee" + ACCOUNT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "account,company,employee,accounting_period" ACCOUNT_CONTACT = "account,contact" ACCOUNT_CONTACT_ACCOUNTING_PERIOD = "account,contact,accounting_period" ACCOUNT_CONTACT_COMPANY = "account,contact,company" ACCOUNT_CONTACT_COMPANY_ACCOUNTING_PERIOD = "account,contact,company,accounting_period" + ACCOUNT_CONTACT_COMPANY_EMPLOYEE = "account,contact,company,employee" + ACCOUNT_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "account,contact,company,employee,accounting_period" + ACCOUNT_CONTACT_EMPLOYEE = "account,contact,employee" + ACCOUNT_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "account,contact,employee,accounting_period" + ACCOUNT_EMPLOYEE = "account,employee" + ACCOUNT_EMPLOYEE_ACCOUNTING_PERIOD = "account,employee,accounting_period" ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" COMPANY_ACCOUNTING_PERIOD = "company,accounting_period" + COMPANY_EMPLOYEE = "company,employee" + COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "company,employee,accounting_period" CONTACT = "contact" CONTACT_ACCOUNTING_PERIOD = "contact,accounting_period" CONTACT_COMPANY = "contact,company" CONTACT_COMPANY_ACCOUNTING_PERIOD = "contact,company,accounting_period" + CONTACT_COMPANY_EMPLOYEE = "contact,company,employee" + CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "contact,company,employee,accounting_period" + CONTACT_EMPLOYEE = "contact,employee" + CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "contact,employee,accounting_period" + EMPLOYEE = "employee" + EMPLOYEE_ACCOUNTING_PERIOD = "employee,accounting_period" TRACKING_CATEGORIES = "tracking_categories" TRACKING_CATEGORIES_ACCOUNT = "tracking_categories,account" TRACKING_CATEGORIES_ACCOUNT_ACCOUNTING_PERIOD = "tracking_categories,account,accounting_period" TRACKING_CATEGORIES_ACCOUNT_COMPANY = "tracking_categories,account,company" TRACKING_CATEGORIES_ACCOUNT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,account,company,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_COMPANY_EMPLOYEE = "tracking_categories,account,company,employee" + TRACKING_CATEGORIES_ACCOUNT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,company,employee,accounting_period" TRACKING_CATEGORIES_ACCOUNT_CONTACT = "tracking_categories,account,contact" TRACKING_CATEGORIES_ACCOUNT_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,account,contact,accounting_period" TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY = "tracking_categories,account,contact,company" TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,account,contact,company,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,account,contact,company,employee" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_EMPLOYEE = "tracking_categories,account,contact,employee" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,contact,employee,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_EMPLOYEE = "tracking_categories,account,employee" + TRACKING_CATEGORIES_ACCOUNT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,employee,accounting_period" TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "tracking_categories,accounting_period" TRACKING_CATEGORIES_COMPANY = "tracking_categories,company" TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,company,accounting_period" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "tracking_categories,company,employee" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,company,employee,accounting_period" TRACKING_CATEGORIES_CONTACT = "tracking_categories,contact" TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,contact,accounting_period" TRACKING_CATEGORIES_CONTACT_COMPANY = "tracking_categories,contact,company" TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,contact,company,accounting_period" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,contact,company,employee" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "tracking_categories,contact,employee" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,employee,accounting_period" + TRACKING_CATEGORIES_EMPLOYEE = "tracking_categories,employee" + TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,employee,accounting_period" end end end diff --git a/lib/merge_ruby_client/accounting/expenses/types/expenses_retrieve_request_expand.rb b/lib/merge_ruby_client/accounting/expenses/types/expenses_retrieve_request_expand.rb index 02a1646e..8d798a49 100644 --- a/lib/merge_ruby_client/accounting/expenses/types/expenses_retrieve_request_expand.rb +++ b/lib/merge_ruby_client/accounting/expenses/types/expenses_retrieve_request_expand.rb @@ -8,33 +8,65 @@ class ExpensesRetrieveRequestExpand ACCOUNT_ACCOUNTING_PERIOD = "account,accounting_period" ACCOUNT_COMPANY = "account,company" ACCOUNT_COMPANY_ACCOUNTING_PERIOD = "account,company,accounting_period" + ACCOUNT_COMPANY_EMPLOYEE = "account,company,employee" + ACCOUNT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "account,company,employee,accounting_period" ACCOUNT_CONTACT = "account,contact" ACCOUNT_CONTACT_ACCOUNTING_PERIOD = "account,contact,accounting_period" ACCOUNT_CONTACT_COMPANY = "account,contact,company" ACCOUNT_CONTACT_COMPANY_ACCOUNTING_PERIOD = "account,contact,company,accounting_period" + ACCOUNT_CONTACT_COMPANY_EMPLOYEE = "account,contact,company,employee" + ACCOUNT_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "account,contact,company,employee,accounting_period" + ACCOUNT_CONTACT_EMPLOYEE = "account,contact,employee" + ACCOUNT_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "account,contact,employee,accounting_period" + ACCOUNT_EMPLOYEE = "account,employee" + ACCOUNT_EMPLOYEE_ACCOUNTING_PERIOD = "account,employee,accounting_period" ACCOUNTING_PERIOD = "accounting_period" COMPANY = "company" COMPANY_ACCOUNTING_PERIOD = "company,accounting_period" + COMPANY_EMPLOYEE = "company,employee" + COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "company,employee,accounting_period" CONTACT = "contact" CONTACT_ACCOUNTING_PERIOD = "contact,accounting_period" CONTACT_COMPANY = "contact,company" CONTACT_COMPANY_ACCOUNTING_PERIOD = "contact,company,accounting_period" + CONTACT_COMPANY_EMPLOYEE = "contact,company,employee" + CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "contact,company,employee,accounting_period" + CONTACT_EMPLOYEE = "contact,employee" + CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "contact,employee,accounting_period" + EMPLOYEE = "employee" + EMPLOYEE_ACCOUNTING_PERIOD = "employee,accounting_period" TRACKING_CATEGORIES = "tracking_categories" TRACKING_CATEGORIES_ACCOUNT = "tracking_categories,account" TRACKING_CATEGORIES_ACCOUNT_ACCOUNTING_PERIOD = "tracking_categories,account,accounting_period" TRACKING_CATEGORIES_ACCOUNT_COMPANY = "tracking_categories,account,company" TRACKING_CATEGORIES_ACCOUNT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,account,company,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_COMPANY_EMPLOYEE = "tracking_categories,account,company,employee" + TRACKING_CATEGORIES_ACCOUNT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,company,employee,accounting_period" TRACKING_CATEGORIES_ACCOUNT_CONTACT = "tracking_categories,account,contact" TRACKING_CATEGORIES_ACCOUNT_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,account,contact,accounting_period" TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY = "tracking_categories,account,contact,company" TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,account,contact,company,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,account,contact,company,employee" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_EMPLOYEE = "tracking_categories,account,contact,employee" + TRACKING_CATEGORIES_ACCOUNT_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,contact,employee,accounting_period" + TRACKING_CATEGORIES_ACCOUNT_EMPLOYEE = "tracking_categories,account,employee" + TRACKING_CATEGORIES_ACCOUNT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,account,employee,accounting_period" TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "tracking_categories,accounting_period" TRACKING_CATEGORIES_COMPANY = "tracking_categories,company" TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,company,accounting_period" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "tracking_categories,company,employee" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,company,employee,accounting_period" TRACKING_CATEGORIES_CONTACT = "tracking_categories,contact" TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,contact,accounting_period" TRACKING_CATEGORIES_CONTACT_COMPANY = "tracking_categories,contact,company" TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,contact,company,accounting_period" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,contact,company,employee" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "tracking_categories,contact,employee" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,employee,accounting_period" + TRACKING_CATEGORIES_EMPLOYEE = "tracking_categories,employee" + TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,employee,accounting_period" end end end diff --git a/lib/merge_ruby_client/accounting/field_mapping/client.rb b/lib/merge_ruby_client/accounting/field_mapping/client.rb index 4b704c23..2e241734 100644 --- a/lib/merge_ruby_client/accounting/field_mapping/client.rb +++ b/lib/merge_ruby_client/accounting/field_mapping/client.rb @@ -23,6 +23,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::FieldMappingApiInstanceResponse] # @example @@ -32,7 +36,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -42,9 +46,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -57,6 +62,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -82,7 +91,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -92,9 +101,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, @@ -280,6 +290,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::FieldMappingApiInstanceResponse] # @example @@ -289,7 +303,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -300,9 +314,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -316,6 +331,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -341,7 +360,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -352,9 +371,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, diff --git a/lib/merge_ruby_client/accounting/force_resync/client.rb b/lib/merge_ruby_client/accounting/force_resync/client.rb index 9127fadc..0623eb6a 100644 --- a/lib/merge_ruby_client/accounting/force_resync/client.rb +++ b/lib/merge_ruby_client/accounting/force_resync/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # @@ -70,7 +70,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # diff --git a/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb b/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb new file mode 100644 index 00000000..ab596f57 --- /dev/null +++ b/lib/merge_ruby_client/accounting/general_ledger_transactions/client.rb @@ -0,0 +1,253 @@ +# frozen_string_literal: true + +require_relative "../../../requests" +require "date" +require_relative "types/general_ledger_transactions_list_request_expand" +require_relative "../types/paginated_general_ledger_transaction_list" +require_relative "types/general_ledger_transactions_retrieve_request_expand" +require_relative "../types/general_ledger_transaction" +require "async" + +module Merge + module Accounting + class GeneralLedgerTransactionsClient + # @return [Merge::RequestClient] + attr_reader :request_client + + # @param request_client [Merge::RequestClient] + # @return [Merge::Accounting::GeneralLedgerTransactionsClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `GeneralLedgerTransaction` objects. + # + # @param company_id [String] If provided, will only return general ledger transactions for this company. + # @param created_after [DateTime] If provided, will only return objects created after this datetime. + # @param created_before [DateTime] If provided, will only return objects created before this datetime. + # @param cursor [String] The pagination cursor value. + # @param expand [Merge::Accounting::GeneralLedgerTransactions::GeneralLedgerTransactionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. + # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be + # returned. + # @param page_size [Integer] Number of results to return per page. + # @param posted_date_after [DateTime] If provided, will only return objects posted after this datetime. + # @param posted_date_before [DateTime] If provided, will only return objects posted before this datetime. + # @param remote_id [String] The API provider's ID for the given object. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedGeneralLedgerTransactionList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.general_ledger_transactions.list + def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, posted_date_after: nil, posted_date_before: nil, remote_id: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "company_id": company_id, + "created_after": created_after, + "created_before": created_before, + "cursor": cursor, + "expand": expand, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "modified_after": modified_after, + "modified_before": modified_before, + "page_size": page_size, + "posted_date_after": posted_date_after, + "posted_date_before": posted_date_before, + "remote_id": remote_id + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/general-ledger-transactions" + end + Merge::Accounting::PaginatedGeneralLedgerTransactionList.from_json(json_object: response.body) + end + + # Returns a `GeneralLedgerTransaction` object with the given `id`. + # + # @param id [String] + # @param expand [Merge::Accounting::GeneralLedgerTransactions::GeneralLedgerTransactionsRetrieveRequestExpand] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::GeneralLedgerTransaction] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.general_ledger_transactions.retrieve(id: "id") + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "expand": expand, + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/general-ledger-transactions/#{id}" + end + Merge::Accounting::GeneralLedgerTransaction.from_json(json_object: response.body) + end + end + + class AsyncGeneralLedgerTransactionsClient + # @return [Merge::AsyncRequestClient] + attr_reader :request_client + + # @param request_client [Merge::AsyncRequestClient] + # @return [Merge::Accounting::AsyncGeneralLedgerTransactionsClient] + def initialize(request_client:) + @request_client = request_client + end + + # Returns a list of `GeneralLedgerTransaction` objects. + # + # @param company_id [String] If provided, will only return general ledger transactions for this company. + # @param created_after [DateTime] If provided, will only return objects created after this datetime. + # @param created_before [DateTime] If provided, will only return objects created before this datetime. + # @param cursor [String] The pagination cursor value. + # @param expand [Merge::Accounting::GeneralLedgerTransactions::GeneralLedgerTransactionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. + # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be + # returned. + # @param page_size [Integer] Number of results to return per page. + # @param posted_date_after [DateTime] If provided, will only return objects posted after this datetime. + # @param posted_date_before [DateTime] If provided, will only return objects posted before this datetime. + # @param remote_id [String] The API provider's ID for the given object. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedGeneralLedgerTransactionList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.general_ledger_transactions.list + def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, posted_date_after: nil, posted_date_before: nil, remote_id: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "company_id": company_id, + "created_after": created_after, + "created_before": created_before, + "cursor": cursor, + "expand": expand, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "modified_after": modified_after, + "modified_before": modified_before, + "page_size": page_size, + "posted_date_after": posted_date_after, + "posted_date_before": posted_date_before, + "remote_id": remote_id + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/general-ledger-transactions" + end + Merge::Accounting::PaginatedGeneralLedgerTransactionList.from_json(json_object: response.body) + end + end + + # Returns a `GeneralLedgerTransaction` object with the given `id`. + # + # @param id [String] + # @param expand [Merge::Accounting::GeneralLedgerTransactions::GeneralLedgerTransactionsRetrieveRequestExpand] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::GeneralLedgerTransaction] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.general_ledger_transactions.retrieve(id: "id") + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "expand": expand, + "include_remote_data": include_remote_data + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/general-ledger-transactions/#{id}" + end + Merge::Accounting::GeneralLedgerTransaction.from_json(json_object: response.body) + end + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_list_request_expand.rb b/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_list_request_expand.rb new file mode 100644 index 00000000..5eaae90e --- /dev/null +++ b/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_list_request_expand.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Merge + module Accounting + class GeneralLedgerTransactions + class GeneralLedgerTransactionsListRequestExpand + ACCOUNTING_PERIOD = "accounting_period" + COMPANY = "company" + COMPANY_ACCOUNTING_PERIOD = "company,accounting_period" + GENERAL_LEDGER_TRANSACTION_LINES = "general_ledger_transaction_lines" + GENERAL_LEDGER_TRANSACTION_LINES_ACCOUNTING_PERIOD = "general_ledger_transaction_lines,accounting_period" + GENERAL_LEDGER_TRANSACTION_LINES_COMPANY = "general_ledger_transaction_lines,company" + GENERAL_LEDGER_TRANSACTION_LINES_COMPANY_ACCOUNTING_PERIOD = "general_ledger_transaction_lines,company,accounting_period" + TRACKING_CATEGORIES = "tracking_categories" + TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "tracking_categories,accounting_period" + TRACKING_CATEGORIES_COMPANY = "tracking_categories,company" + TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,company,accounting_period" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES = "tracking_categories,general_ledger_transaction_lines" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES_ACCOUNTING_PERIOD = "tracking_categories,general_ledger_transaction_lines,accounting_period" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES_COMPANY = "tracking_categories,general_ledger_transaction_lines,company" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,general_ledger_transaction_lines,company,accounting_period" + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand.rb b/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand.rb new file mode 100644 index 00000000..0ed08e7e --- /dev/null +++ b/lib/merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module Merge + module Accounting + class GeneralLedgerTransactions + class GeneralLedgerTransactionsRetrieveRequestExpand + ACCOUNTING_PERIOD = "accounting_period" + COMPANY = "company" + COMPANY_ACCOUNTING_PERIOD = "company,accounting_period" + GENERAL_LEDGER_TRANSACTION_LINES = "general_ledger_transaction_lines" + GENERAL_LEDGER_TRANSACTION_LINES_ACCOUNTING_PERIOD = "general_ledger_transaction_lines,accounting_period" + GENERAL_LEDGER_TRANSACTION_LINES_COMPANY = "general_ledger_transaction_lines,company" + GENERAL_LEDGER_TRANSACTION_LINES_COMPANY_ACCOUNTING_PERIOD = "general_ledger_transaction_lines,company,accounting_period" + TRACKING_CATEGORIES = "tracking_categories" + TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "tracking_categories,accounting_period" + TRACKING_CATEGORIES_COMPANY = "tracking_categories,company" + TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,company,accounting_period" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES = "tracking_categories,general_ledger_transaction_lines" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES_ACCOUNTING_PERIOD = "tracking_categories,general_ledger_transaction_lines,accounting_period" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES_COMPANY = "tracking_categories,general_ledger_transaction_lines,company" + TRACKING_CATEGORIES_GENERAL_LEDGER_TRANSACTION_LINES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,general_ledger_transaction_lines,company,accounting_period" + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/income_statements/client.rb b/lib/merge_ruby_client/accounting/income_statements/client.rb index c4117278..5295cd5f 100644 --- a/lib/merge_ruby_client/accounting/income_statements/client.rb +++ b/lib/merge_ruby_client/accounting/income_statements/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.accounting.income_statements.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -134,9 +140,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.accounting.income_statements.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -172,6 +183,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/invoices/client.rb b/lib/merge_ruby_client/accounting/invoices/client.rb index 9521eb04..2d442f28 100644 --- a/lib/merge_ruby_client/accounting/invoices/client.rb +++ b/lib/merge_ruby_client/accounting/invoices/client.rb @@ -3,12 +3,14 @@ require_relative "../../../requests" require "date" require_relative "types/invoices_list_request_expand" +require_relative "types/invoices_list_request_status" require_relative "types/invoices_list_request_type" require_relative "../types/paginated_invoice_list" require_relative "../types/invoice_request" require_relative "../types/invoice_response" require_relative "types/invoices_retrieve_request_expand" require_relative "../types/invoice" +require_relative "../types/paginated_remote_field_class_list" require_relative "../types/meta_response" require "async" @@ -33,21 +35,36 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Invoices::InvoicesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param issue_date_after [DateTime] If provided, will only return objects created after this datetime. # @param issue_date_before [DateTime] If provided, will only return objects created before this datetime. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. + # @param number [String] If provided, will only return Invoices with this number. # @param page_size [Integer] Number of results to return per page. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param remote_id [String] The API provider's ID for the given object. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) - # @param type [Merge::Accounting::Invoices::InvoicesListRequestType] If provided, will only return Invoices with this type + # @param status [Merge::Accounting::Invoices::InvoicesListRequestStatus] If provided, will only return Invoices with this status. + # - `PAID` - PAID + # - `DRAFT` - DRAFT + # - `SUBMITTED` - SUBMITTED + # - `PARTIALLY_PAID` - PARTIALLY_PAID + # - `OPEN` - OPEN + # - `VOID` - VOID + # @param type [Merge::Accounting::Invoices::InvoicesListRequestType] If provided, will only return Invoices with this type. # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE # @param request_options [Merge::RequestOptions] @@ -60,7 +77,7 @@ def initialize(request_client:) # ) # api.accounting.invoices.list def list(company_id: nil, contact_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, type: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, number: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, status: nil, type: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -80,14 +97,18 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "issue_date_after": issue_date_after, "issue_date_before": issue_date_before, "modified_after": modified_after, "modified_before": modified_before, + "number": number, "page_size": page_size, "remote_fields": remote_fields, "remote_id": remote_id, "show_enum_origins": show_enum_origins, + "status": status, "type": type }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -99,6 +120,8 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n end # Creates an `Invoice` object with the given values. + # Including a `PurchaseOrder` id in the `purchase_orders` property will generate + # an Accounts Payable Invoice from the specified Purchase Order(s). # # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. @@ -109,14 +132,16 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n # * :issue_date (DateTime) # * :due_date (DateTime) # * :paid_on_date (DateTime) + # * :employee (Hash) # * :memo (String) # * :status (Merge::Accounting::InvoiceStatusEnum) # * :company (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :total_discount (Float) # * :sub_total (Float) # * :total_tax_amount (Float) + # * :inclusive_of_tax (Boolean) # * :total_amount (Float) # * :balance (Float) # * :payments (Array) @@ -125,6 +150,7 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n # * :purchase_orders (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::InvoiceResponse] # @example @@ -162,6 +188,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn @@ -175,8 +203,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.invoices.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, show_enum_origins: nil, - request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, remote_fields: nil, + show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -190,6 +218,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho **(request_options&.additional_query_parameters || {}), "expand": expand, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, "remote_fields": remote_fields, "show_enum_origins": show_enum_origins }.compact @@ -213,14 +242,16 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # * :issue_date (DateTime) # * :due_date (DateTime) # * :paid_on_date (DateTime) + # * :employee (Hash) # * :memo (String) # * :status (Merge::Accounting::InvoiceStatusEnum) # * :company (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :total_discount (Float) # * :sub_total (Float) # * :total_tax_amount (Float) + # * :inclusive_of_tax (Boolean) # * :total_amount (Float) # * :balance (Float) # * :payments (Array) @@ -229,6 +260,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # * :purchase_orders (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::InvoiceResponse] # @example @@ -259,6 +291,57 @@ def partial_update(id:, model:, is_debug_mode: nil, run_async: nil, request_opti Merge::Accounting::InvoiceResponse.from_json(json_object: response.body) end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.invoices.line_items_remote_field_classes_list + def line_items_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/invoices/line-items/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + # Returns metadata for `Invoice` PATCHs. # # @param id [String] @@ -323,6 +406,57 @@ def meta_post_retrieve(request_options: nil) end Merge::Accounting::MetaResponse.from_json(json_object: response.body) end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.invoices.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/invoices/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end end class AsyncInvoicesClient @@ -344,21 +478,36 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Invoices::InvoicesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param issue_date_after [DateTime] If provided, will only return objects created after this datetime. # @param issue_date_before [DateTime] If provided, will only return objects created before this datetime. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. + # @param number [String] If provided, will only return Invoices with this number. # @param page_size [Integer] Number of results to return per page. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param remote_id [String] The API provider's ID for the given object. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) - # @param type [Merge::Accounting::Invoices::InvoicesListRequestType] If provided, will only return Invoices with this type + # @param status [Merge::Accounting::Invoices::InvoicesListRequestStatus] If provided, will only return Invoices with this status. + # - `PAID` - PAID + # - `DRAFT` - DRAFT + # - `SUBMITTED` - SUBMITTED + # - `PARTIALLY_PAID` - PARTIALLY_PAID + # - `OPEN` - OPEN + # - `VOID` - VOID + # @param type [Merge::Accounting::Invoices::InvoicesListRequestType] If provided, will only return Invoices with this type. # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE # @param request_options [Merge::RequestOptions] @@ -371,7 +520,7 @@ def initialize(request_client:) # ) # api.accounting.invoices.list def list(company_id: nil, contact_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, type: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, number: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, status: nil, type: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -392,14 +541,18 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "issue_date_after": issue_date_after, "issue_date_before": issue_date_before, "modified_after": modified_after, "modified_before": modified_before, + "number": number, "page_size": page_size, "remote_fields": remote_fields, "remote_id": remote_id, "show_enum_origins": show_enum_origins, + "status": status, "type": type }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -412,6 +565,8 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n end # Creates an `Invoice` object with the given values. + # Including a `PurchaseOrder` id in the `purchase_orders` property will generate + # an Accounts Payable Invoice from the specified Purchase Order(s). # # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. @@ -422,14 +577,16 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n # * :issue_date (DateTime) # * :due_date (DateTime) # * :paid_on_date (DateTime) + # * :employee (Hash) # * :memo (String) # * :status (Merge::Accounting::InvoiceStatusEnum) # * :company (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :total_discount (Float) # * :sub_total (Float) # * :total_tax_amount (Float) + # * :inclusive_of_tax (Boolean) # * :total_amount (Float) # * :balance (Float) # * :payments (Array) @@ -438,6 +595,7 @@ def list(company_id: nil, contact_id: nil, created_after: nil, created_before: n # * :purchase_orders (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::InvoiceResponse] # @example @@ -477,6 +635,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn @@ -490,8 +650,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.invoices.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, show_enum_origins: nil, - request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, remote_fields: nil, + show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -506,6 +666,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho **(request_options&.additional_query_parameters || {}), "expand": expand, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, "remote_fields": remote_fields, "show_enum_origins": show_enum_origins }.compact @@ -530,14 +691,16 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # * :issue_date (DateTime) # * :due_date (DateTime) # * :paid_on_date (DateTime) + # * :employee (Hash) # * :memo (String) # * :status (Merge::Accounting::InvoiceStatusEnum) # * :company (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :total_discount (Float) # * :sub_total (Float) # * :total_tax_amount (Float) + # * :inclusive_of_tax (Boolean) # * :total_amount (Float) # * :balance (Float) # * :payments (Array) @@ -546,6 +709,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # * :purchase_orders (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::InvoiceResponse] # @example @@ -578,6 +742,59 @@ def partial_update(id:, model:, is_debug_mode: nil, run_async: nil, request_opti end end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.invoices.line_items_remote_field_classes_list + def line_items_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/invoices/line-items/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end + # Returns metadata for `Invoice` PATCHs. # # @param id [String] @@ -646,6 +863,59 @@ def meta_post_retrieve(request_options: nil) Merge::Accounting::MetaResponse.from_json(json_object: response.body) end end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.invoices.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/invoices/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_expand.rb b/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_expand.rb index 99c1c9b1..3230a961 100644 --- a/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_expand.rb +++ b/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_expand.rb @@ -5,260 +5,2052 @@ module Accounting class Invoices class InvoicesListRequestExpand ACCOUNTING_PERIOD = "accounting_period" + APPLIED_CREDIT_NOTES = "applied_credit_notes" + APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_credit_notes,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_credit_notes,applied_vendor_credits" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_credit_notes,applied_vendor_credits,company" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_credit_notes,applied_vendor_credits,contact" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_CREDIT_NOTES_COMPANY = "applied_credit_notes,company" + APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,company,accounting_period" + APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_credit_notes,company,employee" + APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT = "applied_credit_notes,contact" + APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_credit_notes,contact,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_credit_notes,contact,company" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,contact,company,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_credit_notes,contact,company,employee" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_credit_notes,contact,employee" + APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,contact,employee,accounting_period" + APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_credit_notes,employee" + APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,employee,accounting_period" APPLIED_PAYMENTS = "applied_payments" APPLIED_PAYMENTS_ACCOUNTING_PERIOD = "applied_payments,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES = "applied_payments,applied_credit_notes" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,applied_credit_notes,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,applied_credit_notes,contact" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,applied_credit_notes,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS = "applied_payments,applied_vendor_credits" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,applied_vendor_credits,company" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,applied_vendor_credits,contact" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,applied_vendor_credits,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_COMPANY = "applied_payments,company" APPLIED_PAYMENTS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,company,accounting_period" + APPLIED_PAYMENTS_COMPANY_EMPLOYEE = "applied_payments,company,employee" + APPLIED_PAYMENTS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,company,employee,accounting_period" APPLIED_PAYMENTS_CONTACT = "applied_payments,contact" APPLIED_PAYMENTS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,contact,accounting_period" APPLIED_PAYMENTS_CONTACT_COMPANY = "applied_payments,contact,company" APPLIED_PAYMENTS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,contact,company,accounting_period" + APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,contact,company,employee" + APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_CONTACT_EMPLOYEE = "applied_payments,contact,employee" + APPLIED_PAYMENTS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,contact,employee,accounting_period" + APPLIED_PAYMENTS_EMPLOYEE = "applied_payments,employee" + APPLIED_PAYMENTS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS = "applied_payments,line_items" APPLIED_PAYMENTS_LINE_ITEMS_ACCOUNTING_PERIOD = "applied_payments,line_items,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES = "applied_payments,line_items,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_COMPANY = "applied_payments,line_items,company" APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE = "applied_payments,line_items,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT = "applied_payments,line_items,contact" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY = "applied_payments,line_items,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE = "applied_payments,line_items,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE = "applied_payments,line_items,employee" + APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS = "applied_payments,line_items,purchase_orders" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,line_items,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "applied_payments,line_items,purchase_orders,company" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "applied_payments,line_items,purchase_orders,contact" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,line_items,purchase_orders,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES = "applied_payments,line_items,tracking_categories" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "applied_payments,line_items,tracking_categories,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "applied_payments,line_items,tracking_categories,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "applied_payments,line_items,tracking_categories,contact" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "applied_payments,line_items,tracking_categories,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "applied_payments,line_items,tracking_categories,purchase_orders" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,contact" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS = "applied_payments,purchase_orders" APPLIED_PAYMENTS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY = "applied_payments,purchase_orders,company" APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT = "applied_payments,purchase_orders,contact" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,purchase_orders,contact,company" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,purchase_orders,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES = "applied_payments,tracking_categories" APPLIED_PAYMENTS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "applied_payments,tracking_categories,applied_credit_notes" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,tracking_categories,applied_credit_notes,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY = "applied_payments,tracking_categories,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,company,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT = "applied_payments,tracking_categories,contact" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY = "applied_payments,tracking_categories,contact,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE = "applied_payments,tracking_categories,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "applied_payments,tracking_categories,purchase_orders" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "applied_payments,tracking_categories,purchase_orders,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "applied_payments,tracking_categories,purchase_orders,contact" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,contact,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,employee,accounting_period" + APPLIED_VENDOR_CREDITS = "applied_vendor_credits" + APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_vendor_credits,accounting_period" + APPLIED_VENDOR_CREDITS_COMPANY = "applied_vendor_credits,company" + APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_vendor_credits,company,accounting_period" + APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_vendor_credits,company,employee" + APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,company,employee,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT = "applied_vendor_credits,contact" + APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_vendor_credits,contact,company" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,company,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_vendor_credits,contact,company,employee" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_vendor_credits,contact,employee" + APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,employee,accounting_period" + APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_vendor_credits,employee" + APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,employee,accounting_period" COMPANY = "company" COMPANY_ACCOUNTING_PERIOD = "company,accounting_period" + COMPANY_EMPLOYEE = "company,employee" + COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "company,employee,accounting_period" CONTACT = "contact" CONTACT_ACCOUNTING_PERIOD = "contact,accounting_period" CONTACT_COMPANY = "contact,company" CONTACT_COMPANY_ACCOUNTING_PERIOD = "contact,company,accounting_period" + CONTACT_COMPANY_EMPLOYEE = "contact,company,employee" + CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "contact,company,employee,accounting_period" + CONTACT_EMPLOYEE = "contact,employee" + CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "contact,employee,accounting_period" + EMPLOYEE = "employee" + EMPLOYEE_ACCOUNTING_PERIOD = "employee,accounting_period" LINE_ITEMS = "line_items" LINE_ITEMS_ACCOUNTING_PERIOD = "line_items,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES = "line_items,applied_credit_notes" + LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "line_items,applied_credit_notes,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "line_items,applied_credit_notes,contact" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,applied_credit_notes,contact,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,contact,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,applied_credit_notes,contact,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,applied_credit_notes,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS = "line_items,applied_vendor_credits" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,applied_vendor_credits,company" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,applied_vendor_credits,company,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,applied_vendor_credits,contact" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,applied_vendor_credits,contact,company" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,applied_vendor_credits,contact,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,applied_vendor_credits,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_COMPANY = "line_items,company" LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "line_items,company,accounting_period" + LINE_ITEMS_COMPANY_EMPLOYEE = "line_items,company,employee" + LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,company,employee,accounting_period" LINE_ITEMS_CONTACT = "line_items,contact" LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "line_items,contact,accounting_period" LINE_ITEMS_CONTACT_COMPANY = "line_items,contact,company" LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,contact,company,accounting_period" + LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "line_items,contact,company,employee" + LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,contact,company,employee,accounting_period" + LINE_ITEMS_CONTACT_EMPLOYEE = "line_items,contact,employee" + LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,contact,employee,accounting_period" + LINE_ITEMS_EMPLOYEE = "line_items,employee" + LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,employee,accounting_period" LINE_ITEMS_PURCHASE_ORDERS = "line_items,purchase_orders" LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "line_items,purchase_orders,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "line_items,purchase_orders,applied_credit_notes" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "line_items,purchase_orders,applied_credit_notes,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "line_items,purchase_orders,applied_credit_notes,contact" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,purchase_orders,applied_credit_notes,contact,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "line_items,purchase_orders,applied_vendor_credits" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,purchase_orders,applied_vendor_credits,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,purchase_orders,applied_vendor_credits,contact" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,purchase_orders,applied_vendor_credits,contact,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "line_items,purchase_orders,company" LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "line_items,purchase_orders,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,company,employee,accounting_period" LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "line_items,purchase_orders,contact" LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,accounting_period" LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "line_items,purchase_orders,contact,company" LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "line_items,purchase_orders,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "line_items,purchase_orders,employee" + LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES = "line_items,tracking_categories" LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "line_items,tracking_categories,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "line_items,tracking_categories,applied_credit_notes" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "line_items,tracking_categories,applied_credit_notes,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "line_items,tracking_categories,applied_credit_notes,contact" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,tracking_categories,applied_credit_notes,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "line_items,tracking_categories,company" LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "line_items,tracking_categories,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,company,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "line_items,tracking_categories,contact" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "line_items,tracking_categories,contact,company" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "line_items,tracking_categories,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "line_items,tracking_categories,employee" + LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "line_items,tracking_categories,purchase_orders" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "line_items,tracking_categories,purchase_orders,applied_credit_notes" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,purchase_orders,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "line_items,tracking_categories,purchase_orders,company" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,company,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "line_items,tracking_categories,purchase_orders,contact" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,contact,company" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "line_items,tracking_categories,purchase_orders,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,employee,accounting_period" PAYMENTS = "payments" PAYMENTS_ACCOUNTING_PERIOD = "payments,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES = "payments,applied_credit_notes" + PAYMENTS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_credit_notes,company" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_credit_notes,contact" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_credit_notes,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS = "payments,applied_payments" PAYMENTS_APPLIED_PAYMENTS_ACCOUNTING_PERIOD = "payments,applied_payments,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES = "payments,applied_payments,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_COMPANY = "payments,applied_payments,company" PAYMENTS_APPLIED_PAYMENTS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_COMPANY_EMPLOYEE = "payments,applied_payments,company,employee" + PAYMENTS_APPLIED_PAYMENTS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_CONTACT = "payments,applied_payments,contact" PAYMENTS_APPLIED_PAYMENTS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY = "payments,applied_payments,contact,company" PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_EMPLOYEE = "payments,applied_payments,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_EMPLOYEE = "payments,applied_payments,employee" + PAYMENTS_APPLIED_PAYMENTS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS = "payments,applied_payments,line_items" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY = "payments,applied_payments,line_items,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT = "payments,applied_payments,line_items,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY = "payments,applied_payments,line_items,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE = "payments,applied_payments,line_items,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS = "payments,applied_payments,line_items,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,line_items,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,line_items,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES = "payments,applied_payments,line_items,tracking_categories" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "payments,applied_payments,line_items,tracking_categories,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "payments,applied_payments,line_items,tracking_categories,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,applied_payments,line_items,tracking_categories,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS = "payments,applied_payments,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES = "payments,applied_payments,tracking_categories" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,applied_payments,tracking_categories,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,tracking_categories,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY = "payments,applied_payments,tracking_categories,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT = "payments,applied_payments,tracking_categories,contact" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,contact,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE = "payments,applied_payments,tracking_categories,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,applied_payments,tracking_categories,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS = "payments,applied_vendor_credits" + PAYMENTS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_vendor_credits,company" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_vendor_credits,contact" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_vendor_credits,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,employee,accounting_period" PAYMENTS_COMPANY = "payments,company" PAYMENTS_COMPANY_ACCOUNTING_PERIOD = "payments,company,accounting_period" + PAYMENTS_COMPANY_EMPLOYEE = "payments,company,employee" + PAYMENTS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,company,employee,accounting_period" PAYMENTS_CONTACT = "payments,contact" PAYMENTS_CONTACT_ACCOUNTING_PERIOD = "payments,contact,accounting_period" PAYMENTS_CONTACT_COMPANY = "payments,contact,company" PAYMENTS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,contact,company,accounting_period" + PAYMENTS_CONTACT_COMPANY_EMPLOYEE = "payments,contact,company,employee" + PAYMENTS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,contact,company,employee,accounting_period" + PAYMENTS_CONTACT_EMPLOYEE = "payments,contact,employee" + PAYMENTS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,contact,employee,accounting_period" + PAYMENTS_EMPLOYEE = "payments,employee" + PAYMENTS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,employee,accounting_period" PAYMENTS_LINE_ITEMS = "payments,line_items" PAYMENTS_LINE_ITEMS_ACCOUNTING_PERIOD = "payments,line_items,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES = "payments,line_items,applied_credit_notes" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS = "payments,line_items,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_COMPANY = "payments,line_items,company" PAYMENTS_LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,company,accounting_period" + PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE = "payments,line_items,company,employee" + PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_CONTACT = "payments,line_items,contact" PAYMENTS_LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,contact,accounting_period" PAYMENTS_LINE_ITEMS_CONTACT_COMPANY = "payments,line_items,contact,company" PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,contact,company,employee" + PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE = "payments,line_items,contact,employee" + PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_EMPLOYEE = "payments,line_items,employee" + PAYMENTS_LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,employee,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS = "payments,line_items,purchase_orders" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,line_items,purchase_orders,applied_credit_notes" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,purchase_orders,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,line_items,purchase_orders,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,purchase_orders,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "payments,line_items,purchase_orders,company" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "payments,line_items,purchase_orders,contact" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,line_items,purchase_orders,contact,company" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "payments,line_items,purchase_orders,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES = "payments,line_items,tracking_categories" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,line_items,tracking_categories,applied_credit_notes" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,tracking_categories,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "payments,line_items,tracking_categories,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "payments,line_items,tracking_categories,contact" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,line_items,tracking_categories,contact,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "payments,line_items,tracking_categories,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,line_items,tracking_categories,purchase_orders" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,line_items,tracking_categories,purchase_orders,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,line_items,tracking_categories,purchase_orders,contact" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,contact,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,employee,accounting_period" PAYMENTS_PURCHASE_ORDERS = "payments,purchase_orders" PAYMENTS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,purchase_orders,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,purchase_orders,applied_credit_notes" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,purchase_orders,applied_credit_notes,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,purchase_orders,applied_credit_notes,contact" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,purchase_orders,applied_vendor_credits" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,purchase_orders,applied_vendor_credits,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_PURCHASE_ORDERS_COMPANY = "payments,purchase_orders,company" PAYMENTS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,purchase_orders,company,employee" + PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,company,employee,accounting_period" PAYMENTS_PURCHASE_ORDERS_CONTACT = "payments,purchase_orders,contact" PAYMENTS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,accounting_period" PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,purchase_orders,contact,company" PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,purchase_orders,contact,employee" + PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_EMPLOYEE = "payments,purchase_orders,employee" + PAYMENTS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES = "payments,tracking_categories" PAYMENTS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,tracking_categories,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,tracking_categories,applied_credit_notes" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,tracking_categories,applied_credit_notes,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,tracking_categories,applied_credit_notes,contact" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_COMPANY = "payments,tracking_categories,company" PAYMENTS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,tracking_categories,company,employee" + PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,company,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_CONTACT = "payments,tracking_categories,contact" PAYMENTS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,accounting_period" PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,tracking_categories,contact,company" PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,tracking_categories,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE = "payments,tracking_categories,employee" + PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,tracking_categories,purchase_orders" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,tracking_categories,purchase_orders,company" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,tracking_categories,purchase_orders,contact" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,contact,company" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,tracking_categories,purchase_orders,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,employee,accounting_period" PURCHASE_ORDERS = "purchase_orders" PURCHASE_ORDERS_ACCOUNTING_PERIOD = "purchase_orders,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "purchase_orders,applied_credit_notes" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "purchase_orders,applied_credit_notes,applied_vendor_credits" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "purchase_orders,applied_credit_notes,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "purchase_orders,applied_credit_notes,contact" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "purchase_orders,applied_credit_notes,contact,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,contact,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "purchase_orders,applied_credit_notes,contact,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "purchase_orders,applied_credit_notes,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "purchase_orders,applied_vendor_credits" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "purchase_orders,applied_vendor_credits,company" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,company,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "purchase_orders,applied_vendor_credits,company,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "purchase_orders,applied_vendor_credits,contact" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "purchase_orders,applied_vendor_credits,contact,company" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,applied_vendor_credits,contact,company,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "purchase_orders,applied_vendor_credits,contact,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "purchase_orders,applied_vendor_credits,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,employee,accounting_period" PURCHASE_ORDERS_COMPANY = "purchase_orders,company" PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,company,accounting_period" + PURCHASE_ORDERS_COMPANY_EMPLOYEE = "purchase_orders,company,employee" + PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,company,employee,accounting_period" PURCHASE_ORDERS_CONTACT = "purchase_orders,contact" PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,contact,accounting_period" PURCHASE_ORDERS_CONTACT_COMPANY = "purchase_orders,contact,company" PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,contact,company,accounting_period" + PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,contact,company,employee" + PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,contact,company,employee,accounting_period" + PURCHASE_ORDERS_CONTACT_EMPLOYEE = "purchase_orders,contact,employee" + PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,contact,employee,accounting_period" + PURCHASE_ORDERS_EMPLOYEE = "purchase_orders,employee" + PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,employee,accounting_period" TRACKING_CATEGORIES = "tracking_categories" TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "tracking_categories,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "tracking_categories,applied_credit_notes" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "tracking_categories,applied_credit_notes,applied_vendor_credits" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,applied_credit_notes,applied_vendor_credits,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "tracking_categories,applied_credit_notes,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "tracking_categories,applied_credit_notes,contact" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "tracking_categories,applied_credit_notes,contact,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,contact,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "tracking_categories,applied_credit_notes,contact,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "tracking_categories,applied_credit_notes,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "tracking_categories,applied_vendor_credits" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,applied_vendor_credits,company" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,applied_vendor_credits,contact" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,applied_vendor_credits,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,employee,accounting_period" TRACKING_CATEGORIES_COMPANY = "tracking_categories,company" TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,company,accounting_period" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "tracking_categories,company,employee" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,company,employee,accounting_period" TRACKING_CATEGORIES_CONTACT = "tracking_categories,contact" TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,contact,accounting_period" TRACKING_CATEGORIES_CONTACT_COMPANY = "tracking_categories,contact,company" TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,contact,company,accounting_period" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,contact,company,employee" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "tracking_categories,contact,employee" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,employee,accounting_period" + TRACKING_CATEGORIES_EMPLOYEE = "tracking_categories,employee" + TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,employee,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS = "tracking_categories,purchase_orders" TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "tracking_categories,purchase_orders,applied_credit_notes" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "tracking_categories,purchase_orders,applied_credit_notes,contact" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,contact,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "tracking_categories,purchase_orders,applied_vendor_credits" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,purchase_orders,applied_vendor_credits,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,purchase_orders,applied_vendor_credits,contact" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "tracking_categories,purchase_orders,company" TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,company,employee,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "tracking_categories,purchase_orders,contact" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "tracking_categories,purchase_orders,contact,company" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "tracking_categories,purchase_orders,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,employee,accounting_period" end end end diff --git a/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_status.rb b/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_status.rb new file mode 100644 index 00000000..37847748 --- /dev/null +++ b/lib/merge_ruby_client/accounting/invoices/types/invoices_list_request_status.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Merge + module Accounting + class Invoices + class InvoicesListRequestStatus + DRAFT = "DRAFT" + OPEN = "OPEN" + PAID = "PAID" + PARTIALLY_PAID = "PARTIALLY_PAID" + SUBMITTED = "SUBMITTED" + VOID = "VOID" + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/invoices/types/invoices_retrieve_request_expand.rb b/lib/merge_ruby_client/accounting/invoices/types/invoices_retrieve_request_expand.rb index 15fee700..7bf000de 100644 --- a/lib/merge_ruby_client/accounting/invoices/types/invoices_retrieve_request_expand.rb +++ b/lib/merge_ruby_client/accounting/invoices/types/invoices_retrieve_request_expand.rb @@ -5,260 +5,2052 @@ module Accounting class Invoices class InvoicesRetrieveRequestExpand ACCOUNTING_PERIOD = "accounting_period" + APPLIED_CREDIT_NOTES = "applied_credit_notes" + APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_credit_notes,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_credit_notes,applied_vendor_credits" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_credit_notes,applied_vendor_credits,company" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_credit_notes,applied_vendor_credits,contact" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_credit_notes,applied_vendor_credits,employee" + APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_CREDIT_NOTES_COMPANY = "applied_credit_notes,company" + APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,company,accounting_period" + APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_credit_notes,company,employee" + APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT = "applied_credit_notes,contact" + APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_credit_notes,contact,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_credit_notes,contact,company" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_credit_notes,contact,company,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_credit_notes,contact,company,employee" + APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_credit_notes,contact,employee" + APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,contact,employee,accounting_period" + APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_credit_notes,employee" + APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_credit_notes,employee,accounting_period" APPLIED_PAYMENTS = "applied_payments" APPLIED_PAYMENTS_ACCOUNTING_PERIOD = "applied_payments,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES = "applied_payments,applied_credit_notes" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,applied_credit_notes,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,applied_credit_notes,contact" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,applied_credit_notes,employee" + APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS = "applied_payments,applied_vendor_credits" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,applied_vendor_credits,company" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,applied_vendor_credits,contact" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,applied_vendor_credits,employee" + APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_COMPANY = "applied_payments,company" APPLIED_PAYMENTS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,company,accounting_period" + APPLIED_PAYMENTS_COMPANY_EMPLOYEE = "applied_payments,company,employee" + APPLIED_PAYMENTS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,company,employee,accounting_period" APPLIED_PAYMENTS_CONTACT = "applied_payments,contact" APPLIED_PAYMENTS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,contact,accounting_period" APPLIED_PAYMENTS_CONTACT_COMPANY = "applied_payments,contact,company" APPLIED_PAYMENTS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,contact,company,accounting_period" + APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,contact,company,employee" + APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_CONTACT_EMPLOYEE = "applied_payments,contact,employee" + APPLIED_PAYMENTS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,contact,employee,accounting_period" + APPLIED_PAYMENTS_EMPLOYEE = "applied_payments,employee" + APPLIED_PAYMENTS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS = "applied_payments,line_items" APPLIED_PAYMENTS_LINE_ITEMS_ACCOUNTING_PERIOD = "applied_payments,line_items,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES = "applied_payments,line_items,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_COMPANY = "applied_payments,line_items,company" APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE = "applied_payments,line_items,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT = "applied_payments,line_items,contact" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY = "applied_payments,line_items,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE = "applied_payments,line_items,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE = "applied_payments,line_items,employee" + APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS = "applied_payments,line_items,purchase_orders" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,line_items,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "applied_payments,line_items,purchase_orders,company" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "applied_payments,line_items,purchase_orders,contact" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,line_items,purchase_orders,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,line_items,purchase_orders,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,line_items,purchase_orders,employee" + APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,purchase_orders,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES = "applied_payments,line_items,tracking_categories" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "applied_payments,line_items,tracking_categories,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "applied_payments,line_items,tracking_categories,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "applied_payments,line_items,tracking_categories,contact" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "applied_payments,line_items,tracking_categories,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "applied_payments,line_items,tracking_categories,purchase_orders" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "applied_payments,line_items,tracking_categories,purchase_orders,contact" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company" APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,contact,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,line_items,tracking_categories,purchase_orders,employee" + APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS = "applied_payments,purchase_orders" APPLIED_PAYMENTS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY = "applied_payments,purchase_orders,company" APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT = "applied_payments,purchase_orders,contact" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,purchase_orders,contact,company" APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,purchase_orders,contact,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,purchase_orders,employee" + APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,purchase_orders,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES = "applied_payments,tracking_categories" APPLIED_PAYMENTS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "applied_payments,tracking_categories,applied_credit_notes" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,tracking_categories,applied_credit_notes,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,tracking_categories,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,tracking_categories,applied_credit_notes,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY = "applied_payments,tracking_categories,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,company,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT = "applied_payments,tracking_categories,contact" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY = "applied_payments,tracking_categories,contact,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE = "applied_payments,tracking_categories,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "applied_payments,tracking_categories,purchase_orders" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "applied_payments,tracking_categories,purchase_orders,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "applied_payments,tracking_categories,purchase_orders,contact" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,accounting_period" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "applied_payments,tracking_categories,purchase_orders,contact,company" APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,contact,company,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,contact,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "applied_payments,tracking_categories,purchase_orders,employee" + APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_payments,tracking_categories,purchase_orders,employee,accounting_period" + APPLIED_VENDOR_CREDITS = "applied_vendor_credits" + APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "applied_vendor_credits,accounting_period" + APPLIED_VENDOR_CREDITS_COMPANY = "applied_vendor_credits,company" + APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "applied_vendor_credits,company,accounting_period" + APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "applied_vendor_credits,company,employee" + APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,company,employee,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT = "applied_vendor_credits,contact" + APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "applied_vendor_credits,contact,company" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,company,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "applied_vendor_credits,contact,company,employee" + APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,company,employee,accounting_period" + APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "applied_vendor_credits,contact,employee" + APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,contact,employee,accounting_period" + APPLIED_VENDOR_CREDITS_EMPLOYEE = "applied_vendor_credits,employee" + APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "applied_vendor_credits,employee,accounting_period" COMPANY = "company" COMPANY_ACCOUNTING_PERIOD = "company,accounting_period" + COMPANY_EMPLOYEE = "company,employee" + COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "company,employee,accounting_period" CONTACT = "contact" CONTACT_ACCOUNTING_PERIOD = "contact,accounting_period" CONTACT_COMPANY = "contact,company" CONTACT_COMPANY_ACCOUNTING_PERIOD = "contact,company,accounting_period" + CONTACT_COMPANY_EMPLOYEE = "contact,company,employee" + CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "contact,company,employee,accounting_period" + CONTACT_EMPLOYEE = "contact,employee" + CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "contact,employee,accounting_period" + EMPLOYEE = "employee" + EMPLOYEE_ACCOUNTING_PERIOD = "employee,accounting_period" LINE_ITEMS = "line_items" LINE_ITEMS_ACCOUNTING_PERIOD = "line_items,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES = "line_items,applied_credit_notes" + LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "line_items,applied_credit_notes,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "line_items,applied_credit_notes,contact" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,applied_credit_notes,contact,company" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,applied_credit_notes,contact,company,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,applied_credit_notes,contact,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,applied_credit_notes,employee" + LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS = "line_items,applied_vendor_credits" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,applied_vendor_credits,company" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,applied_vendor_credits,company,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,applied_vendor_credits,contact" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,applied_vendor_credits,contact,company" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,applied_vendor_credits,contact,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,applied_vendor_credits,employee" + LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_COMPANY = "line_items,company" LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "line_items,company,accounting_period" + LINE_ITEMS_COMPANY_EMPLOYEE = "line_items,company,employee" + LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,company,employee,accounting_period" LINE_ITEMS_CONTACT = "line_items,contact" LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "line_items,contact,accounting_period" LINE_ITEMS_CONTACT_COMPANY = "line_items,contact,company" LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,contact,company,accounting_period" + LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "line_items,contact,company,employee" + LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,contact,company,employee,accounting_period" + LINE_ITEMS_CONTACT_EMPLOYEE = "line_items,contact,employee" + LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,contact,employee,accounting_period" + LINE_ITEMS_EMPLOYEE = "line_items,employee" + LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,employee,accounting_period" LINE_ITEMS_PURCHASE_ORDERS = "line_items,purchase_orders" LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "line_items,purchase_orders,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "line_items,purchase_orders,applied_credit_notes" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "line_items,purchase_orders,applied_credit_notes,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "line_items,purchase_orders,applied_credit_notes,contact" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,purchase_orders,applied_credit_notes,contact,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,purchase_orders,applied_credit_notes,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "line_items,purchase_orders,applied_vendor_credits" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,purchase_orders,applied_vendor_credits,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,purchase_orders,applied_vendor_credits,contact" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,purchase_orders,applied_vendor_credits,contact,company" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,purchase_orders,applied_vendor_credits,employee" + LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "line_items,purchase_orders,company" LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "line_items,purchase_orders,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,company,employee,accounting_period" LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "line_items,purchase_orders,contact" LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,accounting_period" LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "line_items,purchase_orders,contact,company" LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,company,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "line_items,purchase_orders,contact,company,employee" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,company,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "line_items,purchase_orders,contact,employee" + LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,contact,employee,accounting_period" + LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "line_items,purchase_orders,employee" + LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,purchase_orders,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES = "line_items,tracking_categories" LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "line_items,tracking_categories,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "line_items,tracking_categories,applied_credit_notes" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "line_items,tracking_categories,applied_credit_notes,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "line_items,tracking_categories,applied_credit_notes,contact" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,tracking_categories,applied_credit_notes,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,tracking_categories,applied_credit_notes,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "line_items,tracking_categories,company" LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "line_items,tracking_categories,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,company,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "line_items,tracking_categories,contact" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "line_items,tracking_categories,contact,company" LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "line_items,tracking_categories,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "line_items,tracking_categories,employee" + LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "line_items,tracking_categories,purchase_orders" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "line_items,tracking_categories,purchase_orders,applied_credit_notes" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "line_items,tracking_categories,purchase_orders,applied_vendor_credits" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "line_items,tracking_categories,purchase_orders,company" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,company,employee,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "line_items,tracking_categories,purchase_orders,contact" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,accounting_period" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "line_items,tracking_categories,purchase_orders,contact,company" LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "line_items,tracking_categories,purchase_orders,contact,company,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "line_items,tracking_categories,purchase_orders,contact,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "line_items,tracking_categories,purchase_orders,employee" + LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "line_items,tracking_categories,purchase_orders,employee,accounting_period" PAYMENTS = "payments" PAYMENTS_ACCOUNTING_PERIOD = "payments,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES = "payments,applied_credit_notes" + PAYMENTS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_credit_notes,company" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_credit_notes,contact" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_credit_notes,employee" + PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_credit_notes,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS = "payments,applied_payments" PAYMENTS_APPLIED_PAYMENTS_ACCOUNTING_PERIOD = "payments,applied_payments,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES = "payments,applied_payments,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_COMPANY = "payments,applied_payments,company" PAYMENTS_APPLIED_PAYMENTS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_COMPANY_EMPLOYEE = "payments,applied_payments,company,employee" + PAYMENTS_APPLIED_PAYMENTS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_CONTACT = "payments,applied_payments,contact" PAYMENTS_APPLIED_PAYMENTS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY = "payments,applied_payments,contact,company" PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_EMPLOYEE = "payments,applied_payments,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_EMPLOYEE = "payments,applied_payments,employee" + PAYMENTS_APPLIED_PAYMENTS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS = "payments,applied_payments,line_items" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY = "payments,applied_payments,line_items,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT = "payments,applied_payments,line_items,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY = "payments,applied_payments,line_items,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE = "payments,applied_payments,line_items,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS = "payments,applied_payments,line_items,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,line_items,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,line_items,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,line_items,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,line_items,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,purchase_orders,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES = "payments,applied_payments,line_items,tracking_categories" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "payments,applied_payments,line_items,tracking_categories,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "payments,applied_payments,line_items,tracking_categories,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,applied_payments,line_items,tracking_categories,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,line_items,tracking_categories,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,line_items,tracking_categories,purchase_orders,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS = "payments,applied_payments,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,purchase_orders,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES = "payments,applied_payments,tracking_categories" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,applied_payments,tracking_categories,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,tracking_categories,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY = "payments,applied_payments,tracking_categories,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT = "payments,applied_payments,tracking_categories,contact" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,contact,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE = "payments,applied_payments,tracking_categories,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,applied_payments,tracking_categories,purchase_orders" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,applied_payments,tracking_categories,purchase_orders,contact" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,applied_payments,tracking_categories,purchase_orders,contact,company" PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,applied_payments,tracking_categories,purchase_orders,employee" + PAYMENTS_APPLIED_PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_payments,tracking_categories,purchase_orders,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS = "payments,applied_vendor_credits" + PAYMENTS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,applied_vendor_credits,company" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,company,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,applied_vendor_credits,company,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,applied_vendor_credits,contact" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,applied_vendor_credits,contact,company" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,applied_vendor_credits,contact,company,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,applied_vendor_credits,contact,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,applied_vendor_credits,employee" + PAYMENTS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,applied_vendor_credits,employee,accounting_period" PAYMENTS_COMPANY = "payments,company" PAYMENTS_COMPANY_ACCOUNTING_PERIOD = "payments,company,accounting_period" + PAYMENTS_COMPANY_EMPLOYEE = "payments,company,employee" + PAYMENTS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,company,employee,accounting_period" PAYMENTS_CONTACT = "payments,contact" PAYMENTS_CONTACT_ACCOUNTING_PERIOD = "payments,contact,accounting_period" PAYMENTS_CONTACT_COMPANY = "payments,contact,company" PAYMENTS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,contact,company,accounting_period" + PAYMENTS_CONTACT_COMPANY_EMPLOYEE = "payments,contact,company,employee" + PAYMENTS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,contact,company,employee,accounting_period" + PAYMENTS_CONTACT_EMPLOYEE = "payments,contact,employee" + PAYMENTS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,contact,employee,accounting_period" + PAYMENTS_EMPLOYEE = "payments,employee" + PAYMENTS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,employee,accounting_period" PAYMENTS_LINE_ITEMS = "payments,line_items" PAYMENTS_LINE_ITEMS_ACCOUNTING_PERIOD = "payments,line_items,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES = "payments,line_items,applied_credit_notes" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS = "payments,line_items,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_COMPANY = "payments,line_items,company" PAYMENTS_LINE_ITEMS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,company,accounting_period" + PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE = "payments,line_items,company,employee" + PAYMENTS_LINE_ITEMS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_CONTACT = "payments,line_items,contact" PAYMENTS_LINE_ITEMS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,contact,accounting_period" PAYMENTS_LINE_ITEMS_CONTACT_COMPANY = "payments,line_items,contact,company" PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,contact,company,employee" + PAYMENTS_LINE_ITEMS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE = "payments,line_items,contact,employee" + PAYMENTS_LINE_ITEMS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_EMPLOYEE = "payments,line_items,employee" + PAYMENTS_LINE_ITEMS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,employee,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS = "payments,line_items,purchase_orders" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,line_items,purchase_orders,applied_credit_notes" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,purchase_orders,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,purchase_orders,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,line_items,purchase_orders,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,purchase_orders,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY = "payments,line_items,purchase_orders,company" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT = "payments,line_items,purchase_orders,contact" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,accounting_period" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,line_items,purchase_orders,contact,company" PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,purchase_orders,contact,company,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,line_items,purchase_orders,contact,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE = "payments,line_items,purchase_orders,employee" + PAYMENTS_LINE_ITEMS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,purchase_orders,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES = "payments,line_items,tracking_categories" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,line_items,tracking_categories,applied_credit_notes" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,tracking_categories,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,tracking_categories,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY = "payments,line_items,tracking_categories,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT = "payments,line_items,tracking_categories,contact" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,line_items,tracking_categories,contact,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE = "payments,line_items,tracking_categories,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,line_items,tracking_categories,purchase_orders" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,line_items,tracking_categories,purchase_orders,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,line_items,tracking_categories,purchase_orders,contact" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,line_items,tracking_categories,purchase_orders,contact,company" PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,line_items,tracking_categories,purchase_orders,employee" + PAYMENTS_LINE_ITEMS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,line_items,tracking_categories,purchase_orders,employee,accounting_period" PAYMENTS_PURCHASE_ORDERS = "payments,purchase_orders" PAYMENTS_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,purchase_orders,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,purchase_orders,applied_credit_notes" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,purchase_orders,applied_credit_notes,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,purchase_orders,applied_credit_notes,contact" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,purchase_orders,applied_credit_notes,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,purchase_orders,applied_vendor_credits" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,purchase_orders,applied_vendor_credits,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_PURCHASE_ORDERS_COMPANY = "payments,purchase_orders,company" PAYMENTS_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,purchase_orders,company,employee" + PAYMENTS_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,company,employee,accounting_period" PAYMENTS_PURCHASE_ORDERS_CONTACT = "payments,purchase_orders,contact" PAYMENTS_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,accounting_period" PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,purchase_orders,contact,company" PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,company,accounting_period" + PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,purchase_orders,contact,company,employee" + PAYMENTS_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,purchase_orders,contact,employee" + PAYMENTS_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,contact,employee,accounting_period" + PAYMENTS_PURCHASE_ORDERS_EMPLOYEE = "payments,purchase_orders,employee" + PAYMENTS_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,purchase_orders,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES = "payments,tracking_categories" PAYMENTS_TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "payments,tracking_categories,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "payments,tracking_categories,applied_credit_notes" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "payments,tracking_categories,applied_credit_notes,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "payments,tracking_categories,applied_credit_notes,contact" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,tracking_categories,applied_credit_notes,contact,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,tracking_categories,applied_credit_notes,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_credit_notes,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,applied_vendor_credits,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_COMPANY = "payments,tracking_categories,company" PAYMENTS_TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "payments,tracking_categories,company,employee" + PAYMENTS_TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,company,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_CONTACT = "payments,tracking_categories,contact" PAYMENTS_TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,accounting_period" PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY = "payments,tracking_categories,contact,company" PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "payments,tracking_categories,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE = "payments,tracking_categories,employee" + PAYMENTS_TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS = "payments,tracking_categories,purchase_orders" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "payments,tracking_categories,purchase_orders,applied_credit_notes" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_credit_notes,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "payments,tracking_categories,purchase_orders,applied_vendor_credits" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "payments,tracking_categories,purchase_orders,applied_vendor_credits,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "payments,tracking_categories,purchase_orders,company" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,company,employee,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "payments,tracking_categories,purchase_orders,contact" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,accounting_period" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "payments,tracking_categories,purchase_orders,contact,company" PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,company,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "payments,tracking_categories,purchase_orders,contact,company,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,company,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "payments,tracking_categories,purchase_orders,contact,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,contact,employee,accounting_period" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "payments,tracking_categories,purchase_orders,employee" + PAYMENTS_TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "payments,tracking_categories,purchase_orders,employee,accounting_period" PURCHASE_ORDERS = "purchase_orders" PURCHASE_ORDERS_ACCOUNTING_PERIOD = "purchase_orders,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "purchase_orders,applied_credit_notes" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "purchase_orders,applied_credit_notes,applied_vendor_credits" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "purchase_orders,applied_credit_notes,applied_vendor_credits,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "purchase_orders,applied_credit_notes,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "purchase_orders,applied_credit_notes,contact" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "purchase_orders,applied_credit_notes,contact,company" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,company,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,applied_credit_notes,contact,company,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "purchase_orders,applied_credit_notes,contact,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,contact,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "purchase_orders,applied_credit_notes,employee" + PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_credit_notes,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "purchase_orders,applied_vendor_credits" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "purchase_orders,applied_vendor_credits,company" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,company,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "purchase_orders,applied_vendor_credits,company,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "purchase_orders,applied_vendor_credits,contact" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "purchase_orders,applied_vendor_credits,contact,company" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,company,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,applied_vendor_credits,contact,company,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "purchase_orders,applied_vendor_credits,contact,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "purchase_orders,applied_vendor_credits,employee" + PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,applied_vendor_credits,employee,accounting_period" PURCHASE_ORDERS_COMPANY = "purchase_orders,company" PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,company,accounting_period" + PURCHASE_ORDERS_COMPANY_EMPLOYEE = "purchase_orders,company,employee" + PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,company,employee,accounting_period" PURCHASE_ORDERS_CONTACT = "purchase_orders,contact" PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "purchase_orders,contact,accounting_period" PURCHASE_ORDERS_CONTACT_COMPANY = "purchase_orders,contact,company" PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "purchase_orders,contact,company,accounting_period" + PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "purchase_orders,contact,company,employee" + PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,contact,company,employee,accounting_period" + PURCHASE_ORDERS_CONTACT_EMPLOYEE = "purchase_orders,contact,employee" + PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,contact,employee,accounting_period" + PURCHASE_ORDERS_EMPLOYEE = "purchase_orders,employee" + PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "purchase_orders,employee,accounting_period" TRACKING_CATEGORIES = "tracking_categories" TRACKING_CATEGORIES_ACCOUNTING_PERIOD = "tracking_categories,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES = "tracking_categories,applied_credit_notes" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "tracking_categories,applied_credit_notes,applied_vendor_credits" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,applied_credit_notes,applied_vendor_credits,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,applied_credit_notes,applied_vendor_credits,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY = "tracking_categories,applied_credit_notes,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT = "tracking_categories,applied_credit_notes,contact" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "tracking_categories,applied_credit_notes,contact,company" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,applied_credit_notes,contact,company,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "tracking_categories,applied_credit_notes,contact,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,contact,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE = "tracking_categories,applied_credit_notes,employee" + TRACKING_CATEGORIES_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_credit_notes,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS = "tracking_categories,applied_vendor_credits" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,applied_vendor_credits,company" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,applied_vendor_credits,contact" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,applied_vendor_credits,employee" + TRACKING_CATEGORIES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,applied_vendor_credits,employee,accounting_period" TRACKING_CATEGORIES_COMPANY = "tracking_categories,company" TRACKING_CATEGORIES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,company,accounting_period" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE = "tracking_categories,company,employee" + TRACKING_CATEGORIES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,company,employee,accounting_period" TRACKING_CATEGORIES_CONTACT = "tracking_categories,contact" TRACKING_CATEGORIES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,contact,accounting_period" TRACKING_CATEGORIES_CONTACT_COMPANY = "tracking_categories,contact,company" TRACKING_CATEGORIES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,contact,company,accounting_period" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,contact,company,employee" + TRACKING_CATEGORIES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE = "tracking_categories,contact,employee" + TRACKING_CATEGORIES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,contact,employee,accounting_period" + TRACKING_CATEGORIES_EMPLOYEE = "tracking_categories,employee" + TRACKING_CATEGORIES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,employee,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS = "tracking_categories,purchase_orders" TRACKING_CATEGORIES_PURCHASE_ORDERS_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES = "tracking_categories,purchase_orders,applied_credit_notes" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,applied_vendor_credits,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT = "tracking_categories,purchase_orders,applied_credit_notes,contact" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY = "tracking_categories,purchase_orders,applied_credit_notes,contact,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE = "tracking_categories,purchase_orders,applied_credit_notes,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_CREDIT_NOTES_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_credit_notes,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS = "tracking_categories,purchase_orders,applied_vendor_credits" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY = "tracking_categories,purchase_orders,applied_vendor_credits,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT = "tracking_categories,purchase_orders,applied_vendor_credits,contact" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE = "tracking_categories,purchase_orders,applied_vendor_credits,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_APPLIED_VENDOR_CREDITS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,applied_vendor_credits,employee,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY = "tracking_categories,purchase_orders,company" TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,company,employee,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT = "tracking_categories,purchase_orders,contact" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,accounting_period" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY = "tracking_categories,purchase_orders,contact,company" TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,company,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE = "tracking_categories,purchase_orders,contact,company,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_COMPANY_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,company,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE = "tracking_categories,purchase_orders,contact,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_CONTACT_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,contact,employee,accounting_period" + TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE = "tracking_categories,purchase_orders,employee" + TRACKING_CATEGORIES_PURCHASE_ORDERS_EMPLOYEE_ACCOUNTING_PERIOD = "tracking_categories,purchase_orders,employee,accounting_period" end end end diff --git a/lib/merge_ruby_client/accounting/issues/client.rb b/lib/merge_ruby_client/accounting/issues/client.rb index 02a9961a..9ce38cd1 100644 --- a/lib/merge_ruby_client/accounting/issues/client.rb +++ b/lib/merge_ruby_client/accounting/issues/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) @request_client = request_client end - # Gets issues. + # Gets all issues for Organization. # # @param account_token [String] # @param cursor [String] The pagination cursor value. @@ -36,6 +36,8 @@ def initialize(request_client:) # datetime. # @param last_incident_time_before [DateTime] If provided, will only return issues whose last incident time was before this # datetime. + # @param linked_account_id [String] If provided, will only include issues pertaining to the linked account passed + # in. # @param page_size [Integer] Number of results to return per page. # @param start_date [String] If included, will only include issues whose most recent action occurred after # this time @@ -52,7 +54,7 @@ def initialize(request_client:) # ) # api.accounting.issues.list def list(account_token: nil, cursor: nil, end_date: nil, end_user_organization_name: nil, - first_incident_time_after: nil, first_incident_time_before: nil, include_muted: nil, integration_name: nil, last_incident_time_after: nil, last_incident_time_before: nil, page_size: nil, start_date: nil, status: nil, request_options: nil) + first_incident_time_after: nil, first_incident_time_before: nil, include_muted: nil, integration_name: nil, last_incident_time_after: nil, last_incident_time_before: nil, linked_account_id: nil, page_size: nil, start_date: nil, status: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -74,6 +76,7 @@ def list(account_token: nil, cursor: nil, end_date: nil, end_user_organization_n "integration_name": integration_name, "last_incident_time_after": last_incident_time_after, "last_incident_time_before": last_incident_time_before, + "linked_account_id": linked_account_id, "page_size": page_size, "start_date": start_date, "status": status @@ -130,7 +133,7 @@ def initialize(request_client:) @request_client = request_client end - # Gets issues. + # Gets all issues for Organization. # # @param account_token [String] # @param cursor [String] The pagination cursor value. @@ -147,6 +150,8 @@ def initialize(request_client:) # datetime. # @param last_incident_time_before [DateTime] If provided, will only return issues whose last incident time was before this # datetime. + # @param linked_account_id [String] If provided, will only include issues pertaining to the linked account passed + # in. # @param page_size [Integer] Number of results to return per page. # @param start_date [String] If included, will only include issues whose most recent action occurred after # this time @@ -163,7 +168,7 @@ def initialize(request_client:) # ) # api.accounting.issues.list def list(account_token: nil, cursor: nil, end_date: nil, end_user_organization_name: nil, - first_incident_time_after: nil, first_incident_time_before: nil, include_muted: nil, integration_name: nil, last_incident_time_after: nil, last_incident_time_before: nil, page_size: nil, start_date: nil, status: nil, request_options: nil) + first_incident_time_after: nil, first_incident_time_before: nil, include_muted: nil, integration_name: nil, last_incident_time_after: nil, last_incident_time_before: nil, linked_account_id: nil, page_size: nil, start_date: nil, status: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -186,6 +191,7 @@ def list(account_token: nil, cursor: nil, end_date: nil, end_user_organization_n "integration_name": integration_name, "last_incident_time_after": last_incident_time_after, "last_incident_time_before": last_incident_time_before, + "linked_account_id": linked_account_id, "page_size": page_size, "start_date": start_date, "status": status diff --git a/lib/merge_ruby_client/accounting/items/client.rb b/lib/merge_ruby_client/accounting/items/client.rb index 6ba07745..74335469 100644 --- a/lib/merge_ruby_client/accounting/items/client.rb +++ b/lib/merge_ruby_client/accounting/items/client.rb @@ -28,9 +28,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Items::ItemsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -50,7 +55,7 @@ def initialize(request_client:) # ) # api.accounting.items.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -69,6 +74,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -149,9 +155,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Items::ItemsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -171,7 +182,7 @@ def initialize(request_client:) # ) # api.accounting.items.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -191,6 +202,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/items/types/items_list_request_expand.rb b/lib/merge_ruby_client/accounting/items/types/items_list_request_expand.rb index 69692193..15475299 100644 --- a/lib/merge_ruby_client/accounting/items/types/items_list_request_expand.rb +++ b/lib/merge_ruby_client/accounting/items/types/items_list_request_expand.rb @@ -5,12 +5,36 @@ module Accounting class Items class ItemsListRequestExpand COMPANY = "company" + COMPANY_PURCHASE_TAX_RATE = "company,purchase_tax_rate" + COMPANY_SALES_TAX_RATE = "company,sales_tax_rate" + COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "company,sales_tax_rate,purchase_tax_rate" PURCHASE_ACCOUNT = "purchase_account" PURCHASE_ACCOUNT_COMPANY = "purchase_account,company" + PURCHASE_ACCOUNT_COMPANY_PURCHASE_TAX_RATE = "purchase_account,company,purchase_tax_rate" + PURCHASE_ACCOUNT_COMPANY_SALES_TAX_RATE = "purchase_account,company,sales_tax_rate" + PURCHASE_ACCOUNT_COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,company,sales_tax_rate,purchase_tax_rate" + PURCHASE_ACCOUNT_PURCHASE_TAX_RATE = "purchase_account,purchase_tax_rate" PURCHASE_ACCOUNT_SALES_ACCOUNT = "purchase_account,sales_account" PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY = "purchase_account,sales_account,company" + PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY_PURCHASE_TAX_RATE = "purchase_account,sales_account,company,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY_SALES_TAX_RATE = "purchase_account,sales_account,company,sales_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,sales_account,company,sales_tax_rate,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_PURCHASE_TAX_RATE = "purchase_account,sales_account,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_SALES_TAX_RATE = "purchase_account,sales_account,sales_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,sales_account,sales_tax_rate,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_TAX_RATE = "purchase_account,sales_tax_rate" + PURCHASE_ACCOUNT_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,sales_tax_rate,purchase_tax_rate" + PURCHASE_TAX_RATE = "purchase_tax_rate" SALES_ACCOUNT = "sales_account" SALES_ACCOUNT_COMPANY = "sales_account,company" + SALES_ACCOUNT_COMPANY_PURCHASE_TAX_RATE = "sales_account,company,purchase_tax_rate" + SALES_ACCOUNT_COMPANY_SALES_TAX_RATE = "sales_account,company,sales_tax_rate" + SALES_ACCOUNT_COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "sales_account,company,sales_tax_rate,purchase_tax_rate" + SALES_ACCOUNT_PURCHASE_TAX_RATE = "sales_account,purchase_tax_rate" + SALES_ACCOUNT_SALES_TAX_RATE = "sales_account,sales_tax_rate" + SALES_ACCOUNT_SALES_TAX_RATE_PURCHASE_TAX_RATE = "sales_account,sales_tax_rate,purchase_tax_rate" + SALES_TAX_RATE = "sales_tax_rate" + SALES_TAX_RATE_PURCHASE_TAX_RATE = "sales_tax_rate,purchase_tax_rate" end end end diff --git a/lib/merge_ruby_client/accounting/items/types/items_retrieve_request_expand.rb b/lib/merge_ruby_client/accounting/items/types/items_retrieve_request_expand.rb index 95d1dfe1..45162c5b 100644 --- a/lib/merge_ruby_client/accounting/items/types/items_retrieve_request_expand.rb +++ b/lib/merge_ruby_client/accounting/items/types/items_retrieve_request_expand.rb @@ -5,12 +5,36 @@ module Accounting class Items class ItemsRetrieveRequestExpand COMPANY = "company" + COMPANY_PURCHASE_TAX_RATE = "company,purchase_tax_rate" + COMPANY_SALES_TAX_RATE = "company,sales_tax_rate" + COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "company,sales_tax_rate,purchase_tax_rate" PURCHASE_ACCOUNT = "purchase_account" PURCHASE_ACCOUNT_COMPANY = "purchase_account,company" + PURCHASE_ACCOUNT_COMPANY_PURCHASE_TAX_RATE = "purchase_account,company,purchase_tax_rate" + PURCHASE_ACCOUNT_COMPANY_SALES_TAX_RATE = "purchase_account,company,sales_tax_rate" + PURCHASE_ACCOUNT_COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,company,sales_tax_rate,purchase_tax_rate" + PURCHASE_ACCOUNT_PURCHASE_TAX_RATE = "purchase_account,purchase_tax_rate" PURCHASE_ACCOUNT_SALES_ACCOUNT = "purchase_account,sales_account" PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY = "purchase_account,sales_account,company" + PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY_PURCHASE_TAX_RATE = "purchase_account,sales_account,company,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY_SALES_TAX_RATE = "purchase_account,sales_account,company,sales_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,sales_account,company,sales_tax_rate,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_PURCHASE_TAX_RATE = "purchase_account,sales_account,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_SALES_TAX_RATE = "purchase_account,sales_account,sales_tax_rate" + PURCHASE_ACCOUNT_SALES_ACCOUNT_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,sales_account,sales_tax_rate,purchase_tax_rate" + PURCHASE_ACCOUNT_SALES_TAX_RATE = "purchase_account,sales_tax_rate" + PURCHASE_ACCOUNT_SALES_TAX_RATE_PURCHASE_TAX_RATE = "purchase_account,sales_tax_rate,purchase_tax_rate" + PURCHASE_TAX_RATE = "purchase_tax_rate" SALES_ACCOUNT = "sales_account" SALES_ACCOUNT_COMPANY = "sales_account,company" + SALES_ACCOUNT_COMPANY_PURCHASE_TAX_RATE = "sales_account,company,purchase_tax_rate" + SALES_ACCOUNT_COMPANY_SALES_TAX_RATE = "sales_account,company,sales_tax_rate" + SALES_ACCOUNT_COMPANY_SALES_TAX_RATE_PURCHASE_TAX_RATE = "sales_account,company,sales_tax_rate,purchase_tax_rate" + SALES_ACCOUNT_PURCHASE_TAX_RATE = "sales_account,purchase_tax_rate" + SALES_ACCOUNT_SALES_TAX_RATE = "sales_account,sales_tax_rate" + SALES_ACCOUNT_SALES_TAX_RATE_PURCHASE_TAX_RATE = "sales_account,sales_tax_rate,purchase_tax_rate" + SALES_TAX_RATE = "sales_tax_rate" + SALES_TAX_RATE_PURCHASE_TAX_RATE = "sales_tax_rate,purchase_tax_rate" end end end diff --git a/lib/merge_ruby_client/accounting/journal_entries/client.rb b/lib/merge_ruby_client/accounting/journal_entries/client.rb index 349270a3..d31fb3fb 100644 --- a/lib/merge_ruby_client/accounting/journal_entries/client.rb +++ b/lib/merge_ruby_client/accounting/journal_entries/client.rb @@ -8,6 +8,7 @@ require_relative "../types/journal_entry_response" require_relative "types/journal_entries_retrieve_request_expand" require_relative "../types/journal_entry" +require_relative "../types/paginated_remote_field_class_list" require_relative "../types/meta_response" require "async" @@ -31,9 +32,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::JournalEntries::JournalEntriesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -51,7 +59,7 @@ def initialize(request_client:) # ) # api.accounting.journal_entries.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -70,6 +78,8 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -93,15 +103,17 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :transaction_date (DateTime) # * :payments (Array) # * :memo (String) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :company (Hash) # * :tracking_categories (Array) + # * :inclusive_of_tax (Boolean) # * :lines (Array) # * :journal_number (String) # * :posting_status (Merge::Accounting::PostingStatusEnum) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::JournalEntryResponse] # @example @@ -139,6 +151,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::JournalEntry] # @example @@ -148,7 +162,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.journal_entries.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -161,7 +175,8 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) req.params = { **(request_options&.additional_query_parameters || {}), "expand": expand, - "include_remote_data": include_remote_data + "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact @@ -171,6 +186,57 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) Merge::Accounting::JournalEntry.from_json(json_object: response.body) end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.journal_entries.lines_remote_field_classes_list + def lines_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/journal-entries/lines/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + # Returns metadata for `JournalEntry` POSTs. # # @param request_options [Merge::RequestOptions] @@ -202,6 +268,57 @@ def meta_post_retrieve(request_options: nil) end Merge::Accounting::MetaResponse.from_json(json_object: response.body) end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.journal_entries.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/journal-entries/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end end class AsyncJournalEntriesClient @@ -222,9 +339,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::JournalEntries::JournalEntriesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -242,7 +366,7 @@ def initialize(request_client:) # ) # api.accounting.journal_entries.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -262,6 +386,8 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -286,15 +412,17 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :transaction_date (DateTime) # * :payments (Array) # * :memo (String) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :company (Hash) # * :tracking_categories (Array) + # * :inclusive_of_tax (Boolean) # * :lines (Array) # * :journal_number (String) # * :posting_status (Merge::Accounting::PostingStatusEnum) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::JournalEntryResponse] # @example @@ -334,6 +462,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::JournalEntry] # @example @@ -343,7 +473,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.journal_entries.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -357,7 +487,8 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) req.params = { **(request_options&.additional_query_parameters || {}), "expand": expand, - "include_remote_data": include_remote_data + "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact @@ -368,6 +499,59 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) end end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.journal_entries.lines_remote_field_classes_list + def lines_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/journal-entries/lines/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end + # Returns metadata for `JournalEntry` POSTs. # # @param request_options [Merge::RequestOptions] @@ -401,6 +585,59 @@ def meta_post_retrieve(request_options: nil) Merge::Accounting::MetaResponse.from_json(json_object: response.body) end end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.journal_entries.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/journal-entries/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/link_token/client.rb b/lib/merge_ruby_client/accounting/link_token/client.rb index 4012a1ec..754fa6af 100644 --- a/lib/merge_ruby_client/accounting/link_token/client.rb +++ b/lib/merge_ruby_client/accounting/link_token/client.rb @@ -3,6 +3,7 @@ require_relative "../../../requests" require_relative "../types/categories_enum" require_relative "../types/common_model_scopes_body_request" +require_relative "../types/language_enum" require_relative "../types/link_token" require "async" @@ -35,6 +36,9 @@ def initialize(request_client:) # @param should_create_magic_link_url [Boolean] Whether to generate a Magic Link URL. Defaults to false. For more information on # Magic Link, see # https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + # @param hide_admin_magic_link [Boolean] Whether to generate a Magic Link URL on the Admin Needed screen during the + # linking flow. Defaults to false. For more information on Magic Link, see + # https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. # @param common_models [Array] An array of objects to specify the models and fields that will be disabled for a # given Linked Account. Each object uses model_id, enabled_actions, and # disabled_fields to specify the model, method, and fields that are scoped for a @@ -45,7 +49,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Accounting::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::LinkToken] @@ -62,7 +71,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -84,9 +93,11 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin integration: integration, link_expiry_mins: link_expiry_mins, should_create_magic_link_url: should_create_magic_link_url, + hide_admin_magic_link: hide_admin_magic_link, common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/link-token" @@ -122,6 +133,9 @@ def initialize(request_client:) # @param should_create_magic_link_url [Boolean] Whether to generate a Magic Link URL. Defaults to false. For more information on # Magic Link, see # https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. + # @param hide_admin_magic_link [Boolean] Whether to generate a Magic Link URL on the Admin Needed screen during the + # linking flow. Defaults to false. For more information on Magic Link, see + # https://merge.dev/blog/integrations-fast-say-hello-to-magic-link. # @param common_models [Array] An array of objects to specify the models and fields that will be disabled for a # given Linked Account. Each object uses model_id, enabled_actions, and # disabled_fields to specify the model, method, and fields that are scoped for a @@ -132,7 +146,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Accounting::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::LinkToken] @@ -149,7 +168,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -172,9 +191,11 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin integration: integration, link_expiry_mins: link_expiry_mins, should_create_magic_link_url: should_create_magic_link_url, + hide_admin_magic_link: hide_admin_magic_link, common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/link-token" diff --git a/lib/merge_ruby_client/accounting/linked_accounts/client.rb b/lib/merge_ruby_client/accounting/linked_accounts/client.rb index c9c358a4..7bc14e94 100644 --- a/lib/merge_ruby_client/accounting/linked_accounts/client.rb +++ b/lib/merge_ruby_client/accounting/linked_accounts/client.rb @@ -47,7 +47,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaginatedAccountDetailsAndActionsList] # @example @@ -133,7 +133,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaginatedAccountDetailsAndActionsList] # @example diff --git a/lib/merge_ruby_client/accounting/payments/client.rb b/lib/merge_ruby_client/accounting/payments/client.rb index 9d407f7f..a22a24d5 100644 --- a/lib/merge_ruby_client/accounting/payments/client.rb +++ b/lib/merge_ruby_client/accounting/payments/client.rb @@ -9,6 +9,7 @@ require_relative "types/payments_retrieve_request_expand" require_relative "../types/payment" require_relative "../types/patched_payment_request" +require_relative "../types/paginated_remote_field_class_list" require_relative "../types/meta_response" require "async" @@ -34,9 +35,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Payments::PaymentsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -54,7 +62,7 @@ def initialize(request_client:) # ) # api.accounting.payments.list def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, created_before: nil, cursor: nil, - expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -75,6 +83,8 @@ def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -98,7 +108,7 @@ def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, # * :transaction_date (DateTime) # * :contact (Hash) # * :account (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :company (Hash) # * :total_amount (Float) @@ -108,6 +118,7 @@ def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, # * :applied_to_lines (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaymentResponse] # @example @@ -145,6 +156,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::Payment] # @example @@ -154,7 +167,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.payments.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -167,7 +180,8 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) req.params = { **(request_options&.additional_query_parameters || {}), "expand": expand, - "include_remote_data": include_remote_data + "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact @@ -186,7 +200,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) # * :transaction_date (DateTime) # * :contact (Hash) # * :account (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :company (Hash) # * :total_amount (Float) @@ -196,6 +210,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) # * :applied_to_lines (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaymentResponse] # @example @@ -226,6 +241,57 @@ def partial_update(id:, model:, is_debug_mode: nil, run_async: nil, request_opti Merge::Accounting::PaymentResponse.from_json(json_object: response.body) end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.payments.line_items_remote_field_classes_list + def line_items_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/payments/line-items/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + # Returns metadata for `Payment` PATCHs. # # @param id [String] @@ -290,6 +356,57 @@ def meta_post_retrieve(request_options: nil) end Merge::Accounting::MetaResponse.from_json(json_object: response.body) end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.payments.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/payments/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end end class AsyncPaymentsClient @@ -312,9 +429,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Payments::PaymentsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -332,7 +456,7 @@ def initialize(request_client:) # ) # api.accounting.payments.list def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, created_before: nil, cursor: nil, - expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -354,6 +478,8 @@ def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -378,7 +504,7 @@ def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, # * :transaction_date (DateTime) # * :contact (Hash) # * :account (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :company (Hash) # * :total_amount (Float) @@ -388,6 +514,7 @@ def list(account_id: nil, company_id: nil, contact_id: nil, created_after: nil, # * :applied_to_lines (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaymentResponse] # @example @@ -427,6 +554,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::Payment] # @example @@ -436,7 +565,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.payments.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -450,7 +579,8 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) req.params = { **(request_options&.additional_query_parameters || {}), "expand": expand, - "include_remote_data": include_remote_data + "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact @@ -470,7 +600,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) # * :transaction_date (DateTime) # * :contact (Hash) # * :account (Hash) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) # * :exchange_rate (String) # * :company (Hash) # * :total_amount (Float) @@ -480,6 +610,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) # * :applied_to_lines (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PaymentResponse] # @example @@ -512,6 +643,59 @@ def partial_update(id:, model:, is_debug_mode: nil, run_async: nil, request_opti end end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.payments.line_items_remote_field_classes_list + def line_items_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/payments/line-items/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end + # Returns metadata for `Payment` PATCHs. # # @param id [String] @@ -580,6 +764,59 @@ def meta_post_retrieve(request_options: nil) Merge::Accounting::MetaResponse.from_json(json_object: response.body) end end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.payments.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/payments/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/purchase_orders/client.rb b/lib/merge_ruby_client/accounting/purchase_orders/client.rb index c5355d04..d4833387 100644 --- a/lib/merge_ruby_client/accounting/purchase_orders/client.rb +++ b/lib/merge_ruby_client/accounting/purchase_orders/client.rb @@ -8,6 +8,7 @@ require_relative "../types/purchase_order_response" require_relative "types/purchase_orders_retrieve_request_expand" require_relative "../types/purchase_order" +require_relative "../types/paginated_remote_field_class_list" require_relative "../types/meta_response" require "async" @@ -31,9 +32,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::PurchaseOrders::PurchaseOrdersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param issue_date_after [DateTime] If provided, will only return objects created after this datetime. # @param issue_date_before [DateTime] If provided, will only return objects created before this datetime. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -55,7 +63,7 @@ def initialize(request_client:) # ) # api.accounting.purchase_orders.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -74,6 +82,8 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "issue_date_after": issue_date_after, "issue_date_before": issue_date_before, "modified_after": modified_after, @@ -105,12 +115,14 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :memo (String) # * :company (Hash) # * :total_amount (Float) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :inclusive_of_tax (Boolean) # * :exchange_rate (String) # * :tracking_categories (Array) # * :line_items (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PurchaseOrderResponse] # @example @@ -148,6 +160,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn @@ -161,8 +175,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.purchase_orders.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, show_enum_origins: nil, - request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, remote_fields: nil, + show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -176,6 +190,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho **(request_options&.additional_query_parameters || {}), "expand": expand, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, "remote_fields": remote_fields, "show_enum_origins": show_enum_origins }.compact @@ -187,6 +202,57 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho Merge::Accounting::PurchaseOrder.from_json(json_object: response.body) end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.purchase_orders.line_items_remote_field_classes_list + def line_items_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/purchase-orders/line-items/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + # Returns metadata for `PurchaseOrder` POSTs. # # @param request_options [Merge::RequestOptions] @@ -218,6 +284,57 @@ def meta_post_retrieve(request_options: nil) end Merge::Accounting::MetaResponse.from_json(json_object: response.body) end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.purchase_orders.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/purchase-orders/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end end class AsyncPurchaseOrdersClient @@ -238,9 +355,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::PurchaseOrders::PurchaseOrdersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param issue_date_after [DateTime] If provided, will only return objects created after this datetime. # @param issue_date_before [DateTime] If provided, will only return objects created before this datetime. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -262,7 +386,7 @@ def initialize(request_client:) # ) # api.accounting.purchase_orders.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, issue_date_after: nil, issue_date_before: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -282,6 +406,8 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "issue_date_after": issue_date_after, "issue_date_before": issue_date_before, "modified_after": modified_after, @@ -314,12 +440,14 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, # * :memo (String) # * :company (Hash) # * :total_amount (Float) - # * :currency (Merge::Accounting::CurrencyEnum) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :inclusive_of_tax (Boolean) # * :exchange_rate (String) # * :tracking_categories (Array) # * :line_items (Array) # * :integration_params (Hash{String => Object}) # * :linked_account_params (Hash{String => Object}) + # * :remote_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::PurchaseOrderResponse] # @example @@ -359,6 +487,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to + # common models, in a normalized format. # @param remote_fields [String] Deprecated. Use show_enum_origins. # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn @@ -372,8 +502,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.accounting.purchase_orders.retrieve(id: "id") - def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, show_enum_origins: nil, - request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: nil, remote_fields: nil, + show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -388,6 +518,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho **(request_options&.additional_query_parameters || {}), "expand": expand, "include_remote_data": include_remote_data, + "include_remote_fields": include_remote_fields, "remote_fields": remote_fields, "show_enum_origins": show_enum_origins }.compact @@ -400,6 +531,59 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho end end + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.purchase_orders.line_items_remote_field_classes_list + def line_items_remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/purchase-orders/line-items/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end + # Returns metadata for `PurchaseOrder` POSTs. # # @param request_options [Merge::RequestOptions] @@ -433,6 +617,59 @@ def meta_post_retrieve(request_options: nil) Merge::Accounting::MetaResponse.from_json(json_object: response.body) end end + + # Returns a list of `RemoteFieldClass` objects. + # + # @param cursor [String] The pagination cursor value. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to + # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). + # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this + # is_common_model_field value + # @param page_size [Integer] Number of results to return per page. + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.purchase_orders.remote_field_classes_list + def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "cursor": cursor, + "include_deleted_data": include_deleted_data, + "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, + "is_common_model_field": is_common_model_field, + "page_size": page_size + }.compact + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/purchase-orders/remote-field-classes" + end + Merge::Accounting::PaginatedRemoteFieldClassList.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/accounting/scopes/client.rb b/lib/merge_ruby_client/accounting/scopes/client.rb index eef1fc81..98c59a5e 100644 --- a/lib/merge_ruby_client/accounting/scopes/client.rb +++ b/lib/merge_ruby_client/accounting/scopes/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::CommonModelScopeApi] @@ -53,7 +53,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::CommonModelScopeApi] @@ -87,14 +87,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Accounting::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::CommonModelScopeApi] # @example @@ -103,7 +103,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.accounting.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.accounting.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -136,7 +136,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::CommonModelScopeApi] @@ -172,7 +172,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::CommonModelScopeApi] @@ -208,14 +208,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Accounting::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Accounting::CommonModelScopeApi] # @example @@ -224,7 +224,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.accounting.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.accounting.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) Async do response = @request_client.conn.post do |req| diff --git a/lib/merge_ruby_client/accounting/tax_rates/client.rb b/lib/merge_ruby_client/accounting/tax_rates/client.rb index 4b0e1f55..356b1989 100644 --- a/lib/merge_ruby_client/accounting/tax_rates/client.rb +++ b/lib/merge_ruby_client/accounting/tax_rates/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.accounting.tax_rates.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -134,9 +140,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.accounting.tax_rates.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -172,6 +183,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/tracking_categories/client.rb b/lib/merge_ruby_client/accounting/tracking_categories/client.rb index 3123c9e0..e960c907 100644 --- a/lib/merge_ruby_client/accounting/tracking_categories/client.rb +++ b/lib/merge_ruby_client/accounting/tracking_categories/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -48,7 +53,7 @@ def initialize(request_client:) # ) # api.accounting.tracking_categories.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -67,6 +72,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -147,9 +153,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -169,7 +180,7 @@ def initialize(request_client:) # ) # api.accounting.tracking_categories.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -189,6 +200,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/transactions/client.rb b/lib/merge_ruby_client/accounting/transactions/client.rb index 001bde5c..a09a605d 100644 --- a/lib/merge_ruby_client/accounting/transactions/client.rb +++ b/lib/merge_ruby_client/accounting/transactions/client.rb @@ -28,9 +28,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Transactions::TransactionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -48,7 +53,7 @@ def initialize(request_client:) # ) # api.accounting.transactions.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -67,6 +72,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -140,9 +146,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::Transactions::TransactionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -160,7 +171,7 @@ def initialize(request_client:) # ) # api.accounting.transactions.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -180,6 +191,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/accounting/types/account.rb b/lib/merge_ruby_client/accounting/types/account.rb index 8da97594..b03373cc 100644 --- a/lib/merge_ruby_client/accounting/types/account.rb +++ b/lib/merge_ruby_client/accounting/types/account.rb @@ -2,8 +2,9 @@ require "date" require_relative "classification_enum" +require_relative "account_account_type_enum" require_relative "account_status_enum" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "remote_data" require "ostruct" require "json" @@ -47,6 +48,22 @@ class Account # @return [String] The account's type is a narrower and more specific grouping within the account's # classification. attr_reader :type + # @return [Merge::Accounting::AccountAccountTypeEnum] Normalized account type- which is a narrower and more specific grouping within + # the account's classification. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + # - `FIXED_ASSET` - FIXED_ASSET + # - `OTHER_ASSET` - OTHER_ASSET + # - `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + # - `OTHER_EXPENSE` - OTHER_EXPENSE + # - `OTHER_INCOME` - OTHER_INCOME + # - `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + # - `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + # - `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + # - `NON_POSTING` - NON_POSTING + attr_reader :account_type # @return [Merge::Accounting::AccountStatusEnum] The account's status. # - `ACTIVE` - ACTIVE # - `PENDING` - PENDING @@ -54,7 +71,7 @@ class Account attr_reader :status # @return [Float] The account's current balance. attr_reader :current_balance - # @return [Merge::Accounting::CurrencyEnum] The account's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The account's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -369,7 +386,9 @@ class Account # @return [String] The company the account belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -397,12 +416,27 @@ class Account # - `REVENUE` - REVENUE # @param type [String] The account's type is a narrower and more specific grouping within the account's # classification. + # @param account_type [Merge::Accounting::AccountAccountTypeEnum] Normalized account type- which is a narrower and more specific grouping within + # the account's classification. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + # - `FIXED_ASSET` - FIXED_ASSET + # - `OTHER_ASSET` - OTHER_ASSET + # - `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + # - `OTHER_EXPENSE` - OTHER_EXPENSE + # - `OTHER_INCOME` - OTHER_INCOME + # - `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + # - `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + # - `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + # - `NON_POSTING` - NON_POSTING # @param status [Merge::Accounting::AccountStatusEnum] The account's status. # - `ACTIVE` - ACTIVE # - `PENDING` - PENDING # - `INACTIVE` - INACTIVE # @param current_balance [Float] The account's current balance. - # @param currency [Merge::Accounting::CurrencyEnum] The account's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The account's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -713,13 +747,15 @@ class Account # @param parent_account [String] ID of the parent account. # @param company [String] The company the account belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Account] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, description: OMIT, - classification: OMIT, type: OMIT, status: OMIT, current_balance: OMIT, currency: OMIT, account_number: OMIT, parent_account: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + classification: OMIT, type: OMIT, account_type: OMIT, status: OMIT, current_balance: OMIT, currency: OMIT, account_number: OMIT, parent_account: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -728,6 +764,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @description = description if description != OMIT @classification = classification if classification != OMIT @type = type if type != OMIT + @account_type = account_type if account_type != OMIT @status = status if status != OMIT @current_balance = current_balance if current_balance != OMIT @currency = currency if currency != OMIT @@ -747,6 +784,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "description": description, "classification": classification, "type": type, + "account_type": account_type, "status": status, "current_balance": current_balance, "currency": currency, @@ -776,6 +814,7 @@ def self.from_json(json_object:) description = parsed_json["description"] classification = parsed_json["classification"] type = parsed_json["type"] + account_type = parsed_json["account_type"] status = parsed_json["status"] current_balance = parsed_json["current_balance"] currency = parsed_json["currency"] @@ -797,6 +836,7 @@ def self.from_json(json_object:) description: description, classification: classification, type: type, + account_type: account_type, status: status, current_balance: current_balance, currency: currency, @@ -832,9 +872,10 @@ def self.validate_raw(obj:) obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.classification&.is_a?(Merge::Accounting::ClassificationEnum) != false || raise("Passed value for field obj.classification is not the expected type, validation failed.") obj.type&.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.") + obj.account_type&.is_a?(Merge::Accounting::AccountAccountTypeEnum) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") obj.status&.is_a?(Merge::Accounting::AccountStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") obj.current_balance&.is_a?(Float) != false || raise("Passed value for field obj.current_balance is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.account_number&.is_a?(String) != false || raise("Passed value for field obj.account_number is not the expected type, validation failed.") obj.parent_account&.is_a?(String) != false || raise("Passed value for field obj.parent_account is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/account_account_type_enum.rb b/lib/merge_ruby_client/accounting/types/account_account_type_enum.rb new file mode 100644 index 00000000..0002c7b5 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/account_account_type_enum.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + # - `FIXED_ASSET` - FIXED_ASSET + # - `OTHER_ASSET` - OTHER_ASSET + # - `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + # - `OTHER_EXPENSE` - OTHER_EXPENSE + # - `OTHER_INCOME` - OTHER_INCOME + # - `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + # - `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + # - `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + # - `NON_POSTING` - NON_POSTING + class AccountAccountTypeEnum + BANK = "BANK" + CREDIT_CARD = "CREDIT_CARD" + ACCOUNTS_PAYABLE = "ACCOUNTS_PAYABLE" + ACCOUNTS_RECEIVABLE = "ACCOUNTS_RECEIVABLE" + FIXED_ASSET = "FIXED_ASSET" + OTHER_ASSET = "OTHER_ASSET" + OTHER_CURRENT_ASSET = "OTHER_CURRENT_ASSET" + OTHER_EXPENSE = "OTHER_EXPENSE" + OTHER_INCOME = "OTHER_INCOME" + COST_OF_GOODS_SOLD = "COST_OF_GOODS_SOLD" + OTHER_CURRENT_LIABILITY = "OTHER_CURRENT_LIABILITY" + LONG_TERM_LIABILITY = "LONG_TERM_LIABILITY" + NON_POSTING = "NON_POSTING" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/account_details.rb b/lib/merge_ruby_client/accounting/types/account_details.rb index 76a6d032..63ce36b8 100644 --- a/lib/merge_ruby_client/accounting/types/account_details.rb +++ b/lib/merge_ruby_client/accounting/types/account_details.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "category_enum" +require "date" require "ostruct" require "json" @@ -32,6 +33,8 @@ class AccountDetails attr_reader :is_duplicate # @return [String] attr_reader :account_type + # @return [DateTime] The time at which account completes the linking flow. + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -54,10 +57,11 @@ class AccountDetails # incomplete Production Linked Accounts, and ignored duplicate Production Linked # Account sets. # @param account_type [String] + # @param completed_at [DateTime] The time at which account completes the linking flow. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::AccountDetails] def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OMIT, end_user_origin_id: OMIT, - end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, additional_properties: nil) + end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, completed_at: OMIT, additional_properties: nil) @id = id if id != OMIT @integration = integration if integration != OMIT @integration_slug = integration_slug if integration_slug != OMIT @@ -69,6 +73,7 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM @webhook_listener_url = webhook_listener_url if webhook_listener_url != OMIT @is_duplicate = is_duplicate if is_duplicate != OMIT @account_type = account_type if account_type != OMIT + @completed_at = completed_at if completed_at != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -81,7 +86,8 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM "status": status, "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -105,6 +111,7 @@ def self.from_json(json_object:) webhook_listener_url = parsed_json["webhook_listener_url"] is_duplicate = parsed_json["is_duplicate"] account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, integration: integration, @@ -117,6 +124,7 @@ def self.from_json(json_object:) webhook_listener_url: webhook_listener_url, is_duplicate: is_duplicate, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -146,6 +154,7 @@ def self.validate_raw(obj:) obj.webhook_listener_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_listener_url is not the expected type, validation failed.") obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.account_type&.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb b/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb index 87bfcdef..c7e5539f 100644 --- a/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb +++ b/lib/merge_ruby_client/accounting/types/account_details_and_actions.rb @@ -3,6 +3,7 @@ require_relative "category_enum" require_relative "account_details_and_actions_status_enum" require_relative "account_details_and_actions_integration" +require "date" require "ostruct" require "json" @@ -42,6 +43,8 @@ class AccountDetailsAndActions attr_reader :integration # @return [String] attr_reader :account_type + # @return [DateTime] + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -65,10 +68,11 @@ class AccountDetailsAndActions # Account sets. # @param integration [Merge::Accounting::AccountDetailsAndActionsIntegration] # @param account_type [String] + # @param completed_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::AccountDetailsAndActions] def initialize(id:, status:, end_user_organization_name:, end_user_email_address:, webhook_listener_url:, - account_type:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) + account_type:, completed_at:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) @id = id @category = category if category != OMIT @status = status @@ -81,6 +85,7 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address @is_duplicate = is_duplicate if is_duplicate != OMIT @integration = integration if integration != OMIT @account_type = account_type + @completed_at = completed_at @additional_properties = additional_properties @_field_set = { "id": id, @@ -94,7 +99,8 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, "integration": integration, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -124,6 +130,7 @@ def self.from_json(json_object:) integration = Merge::Accounting::AccountDetailsAndActionsIntegration.from_json(json_object: integration) end account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, category: category, @@ -137,6 +144,7 @@ def self.from_json(json_object:) is_duplicate: is_duplicate, integration: integration, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -167,6 +175,7 @@ def self.validate_raw(obj:) obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.integration.nil? || Merge::Accounting::AccountDetailsAndActionsIntegration.validate_raw(obj: obj.integration) obj.account_type.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/account_details_and_actions_status_enum.rb b/lib/merge_ruby_client/accounting/types/account_details_and_actions_status_enum.rb index 4a7fad78..fb6a65f3 100644 --- a/lib/merge_ruby_client/accounting/types/account_details_and_actions_status_enum.rb +++ b/lib/merge_ruby_client/accounting/types/account_details_and_actions_status_enum.rb @@ -5,10 +5,12 @@ module Accounting # - `COMPLETE` - COMPLETE # - `INCOMPLETE` - INCOMPLETE # - `RELINK_NEEDED` - RELINK_NEEDED + # - `IDLE` - IDLE class AccountDetailsAndActionsStatusEnum COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" + IDLE = "IDLE" end end end diff --git a/lib/merge_ruby_client/accounting/types/account_integration.rb b/lib/merge_ruby_client/accounting/types/account_integration.rb index 6b29cb8a..61b331e9 100644 --- a/lib/merge_ruby_client/accounting/types/account_integration.rb +++ b/lib/merge_ruby_client/accounting/types/account_integration.rb @@ -9,13 +9,17 @@ module Accounting class AccountIntegration # @return [String] Company name. attr_reader :name + # @return [String] Optional. This shortened name appears in places with limited space, usually in + # conjunction with the platform's logo (e.g., Merge Link menu).

Example: + # Workforce Now (in lieu of ADP Workforce Now), SuccessFactors (in lieu of SAP + # SuccessFactors) + attr_reader :abbreviated_name # @return [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. attr_reader :categories - # @return [String] Company logo in rectangular shape. Upload an image with a clear - # background. + # @return [String] Company logo in rectangular shape. attr_reader :image - # @return [String] Company logo in square shape. Upload an image with a white background. + # @return [String] Company logo in square shape. attr_reader :square_image # @return [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. @@ -41,11 +45,14 @@ class AccountIntegration OMIT = Object.new # @param name [String] Company name. + # @param abbreviated_name [String] Optional. This shortened name appears in places with limited space, usually in + # conjunction with the platform's logo (e.g., Merge Link menu).

Example: + # Workforce Now (in lieu of ADP Workforce Now), SuccessFactors (in lieu of SAP + # SuccessFactors) # @param categories [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. - # @param image [String] Company logo in rectangular shape. Upload an image with a clear - # background. - # @param square_image [String] Company logo in square shape. Upload an image with a white background. + # @param image [String] Company logo in rectangular shape. + # @param square_image [String] Company logo in square shape. # @param color [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. # @param slug [String] @@ -58,9 +65,10 @@ class AccountIntegration # @param category_beta_status [Hash{String => Object}] Category or categories this integration is in beta status for. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::AccountIntegration] - def initialize(name:, categories: OMIT, image: OMIT, square_image: OMIT, color: OMIT, slug: OMIT, - api_endpoints_to_documentation_urls: OMIT, webhook_setup_guide_url: OMIT, category_beta_status: OMIT, additional_properties: nil) + def initialize(name:, abbreviated_name: OMIT, categories: OMIT, image: OMIT, square_image: OMIT, color: OMIT, + slug: OMIT, api_endpoints_to_documentation_urls: OMIT, webhook_setup_guide_url: OMIT, category_beta_status: OMIT, additional_properties: nil) @name = name + @abbreviated_name = abbreviated_name if abbreviated_name != OMIT @categories = categories if categories != OMIT @image = image if image != OMIT @square_image = square_image if square_image != OMIT @@ -74,6 +82,7 @@ def initialize(name:, categories: OMIT, image: OMIT, square_image: OMIT, color: @additional_properties = additional_properties @_field_set = { "name": name, + "abbreviated_name": abbreviated_name, "categories": categories, "image": image, "square_image": square_image, @@ -95,6 +104,7 @@ def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) name = parsed_json["name"] + abbreviated_name = parsed_json["abbreviated_name"] categories = parsed_json["categories"] image = parsed_json["image"] square_image = parsed_json["square_image"] @@ -105,6 +115,7 @@ def self.from_json(json_object:) category_beta_status = parsed_json["category_beta_status"] new( name: name, + abbreviated_name: abbreviated_name, categories: categories, image: image, square_image: square_image, @@ -132,6 +143,7 @@ def to_json(*_args) # @return [Void] def self.validate_raw(obj:) obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") + obj.abbreviated_name&.is_a?(String) != false || raise("Passed value for field obj.abbreviated_name is not the expected type, validation failed.") obj.categories&.is_a?(Array) != false || raise("Passed value for field obj.categories is not the expected type, validation failed.") obj.image&.is_a?(String) != false || raise("Passed value for field obj.image is not the expected type, validation failed.") obj.square_image&.is_a?(String) != false || raise("Passed value for field obj.square_image is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/account_request.rb b/lib/merge_ruby_client/accounting/types/account_request.rb index 08a16bb6..84e74b06 100644 --- a/lib/merge_ruby_client/accounting/types/account_request.rb +++ b/lib/merge_ruby_client/accounting/types/account_request.rb @@ -1,8 +1,9 @@ # frozen_string_literal: true require_relative "classification_enum" +require_relative "account_account_type_enum" require_relative "account_status_enum" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require "ostruct" require "json" @@ -37,6 +38,22 @@ class AccountRequest # @return [String] The account's type is a narrower and more specific grouping within the account's # classification. attr_reader :type + # @return [Merge::Accounting::AccountAccountTypeEnum] Normalized account type- which is a narrower and more specific grouping within + # the account's classification. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + # - `FIXED_ASSET` - FIXED_ASSET + # - `OTHER_ASSET` - OTHER_ASSET + # - `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + # - `OTHER_EXPENSE` - OTHER_EXPENSE + # - `OTHER_INCOME` - OTHER_INCOME + # - `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + # - `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + # - `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + # - `NON_POSTING` - NON_POSTING + attr_reader :account_type # @return [Merge::Accounting::AccountStatusEnum] The account's status. # - `ACTIVE` - ACTIVE # - `PENDING` - PENDING @@ -44,7 +61,7 @@ class AccountRequest attr_reader :status # @return [Float] The account's current balance. attr_reader :current_balance - # @return [Merge::Accounting::CurrencyEnum] The account's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The account's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -380,12 +397,27 @@ class AccountRequest # - `REVENUE` - REVENUE # @param type [String] The account's type is a narrower and more specific grouping within the account's # classification. + # @param account_type [Merge::Accounting::AccountAccountTypeEnum] Normalized account type- which is a narrower and more specific grouping within + # the account's classification. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE + # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE + # - `FIXED_ASSET` - FIXED_ASSET + # - `OTHER_ASSET` - OTHER_ASSET + # - `OTHER_CURRENT_ASSET` - OTHER_CURRENT_ASSET + # - `OTHER_EXPENSE` - OTHER_EXPENSE + # - `OTHER_INCOME` - OTHER_INCOME + # - `COST_OF_GOODS_SOLD` - COST_OF_GOODS_SOLD + # - `OTHER_CURRENT_LIABILITY` - OTHER_CURRENT_LIABILITY + # - `LONG_TERM_LIABILITY` - LONG_TERM_LIABILITY + # - `NON_POSTING` - NON_POSTING # @param status [Merge::Accounting::AccountStatusEnum] The account's status. # - `ACTIVE` - ACTIVE # - `PENDING` - PENDING # - `INACTIVE` - INACTIVE # @param current_balance [Float] The account's current balance. - # @param currency [Merge::Accounting::CurrencyEnum] The account's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The account's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -699,12 +731,13 @@ class AccountRequest # @param linked_account_params [Hash{String => Object}] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::AccountRequest] - def initialize(name: OMIT, description: OMIT, classification: OMIT, type: OMIT, status: OMIT, + def initialize(name: OMIT, description: OMIT, classification: OMIT, type: OMIT, account_type: OMIT, status: OMIT, current_balance: OMIT, currency: OMIT, account_number: OMIT, parent_account: OMIT, company: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) @name = name if name != OMIT @description = description if description != OMIT @classification = classification if classification != OMIT @type = type if type != OMIT + @account_type = account_type if account_type != OMIT @status = status if status != OMIT @current_balance = current_balance if current_balance != OMIT @currency = currency if currency != OMIT @@ -719,6 +752,7 @@ def initialize(name: OMIT, description: OMIT, classification: OMIT, type: OMIT, "description": description, "classification": classification, "type": type, + "account_type": account_type, "status": status, "current_balance": current_balance, "currency": currency, @@ -743,6 +777,7 @@ def self.from_json(json_object:) description = parsed_json["description"] classification = parsed_json["classification"] type = parsed_json["type"] + account_type = parsed_json["account_type"] status = parsed_json["status"] current_balance = parsed_json["current_balance"] currency = parsed_json["currency"] @@ -756,6 +791,7 @@ def self.from_json(json_object:) description: description, classification: classification, type: type, + account_type: account_type, status: status, current_balance: current_balance, currency: currency, @@ -786,9 +822,10 @@ def self.validate_raw(obj:) obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.classification&.is_a?(Merge::Accounting::ClassificationEnum) != false || raise("Passed value for field obj.classification is not the expected type, validation failed.") obj.type&.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.") + obj.account_type&.is_a?(Merge::Accounting::AccountAccountTypeEnum) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") obj.status&.is_a?(Merge::Accounting::AccountStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") obj.current_balance&.is_a?(Float) != false || raise("Passed value for field obj.current_balance is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.account_number&.is_a?(String) != false || raise("Passed value for field obj.account_number is not the expected type, validation failed.") obj.parent_account&.is_a?(String) != false || raise("Passed value for field obj.parent_account is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/accounting_attachment.rb b/lib/merge_ruby_client/accounting/types/accounting_attachment.rb index cca0d839..c3a21e92 100644 --- a/lib/merge_ruby_client/accounting/types/accounting_attachment.rb +++ b/lib/merge_ruby_client/accounting/types/accounting_attachment.rb @@ -29,7 +29,9 @@ class AccountingAttachment # @return [String] The company the accounting attachment belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -51,7 +53,9 @@ class AccountingAttachment # @param file_url [String] The attachment's url. # @param company [String] The company the accounting attachment belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/accounting/types/accounting_period.rb b/lib/merge_ruby_client/accounting/types/accounting_period.rb index 44a8bd30..4d748c1b 100644 --- a/lib/merge_ruby_client/accounting/types/accounting_period.rb +++ b/lib/merge_ruby_client/accounting/types/accounting_period.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true require "date" -require_relative "accounting_period_status_enum" +require_relative "status_895_enum" +require_relative "remote_data" require "ostruct" require "json" @@ -17,18 +18,24 @@ module Accounting class AccountingPeriod # @return [String] attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id # @return [DateTime] The datetime that this object was created by Merge. attr_reader :created_at # @return [DateTime] The datetime that this object was modified by Merge. attr_reader :modified_at + # @return [String] Name of the accounting period. + attr_reader :name + # @return [Merge::Accounting::Status895Enum] + attr_reader :status # @return [DateTime] Beginning date of the period attr_reader :start_date # @return [DateTime] End date of the period attr_reader :end_date - # @return [Merge::Accounting::AccountingPeriodStatusEnum] - attr_reader :status - # @return [String] Name of the accounting period. - attr_reader :name + # @return [Hash{String => Object}] + attr_reader :field_mappings + # @return [Array] + attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -38,32 +45,41 @@ class AccountingPeriod OMIT = Object.new # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param name [String] Name of the accounting period. + # @param status [Merge::Accounting::Status895Enum] # @param start_date [DateTime] Beginning date of the period # @param end_date [DateTime] End date of the period - # @param status [Merge::Accounting::AccountingPeriodStatusEnum] - # @param name [String] Name of the accounting period. + # @param field_mappings [Hash{String => Object}] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::AccountingPeriod] - def initialize(id: OMIT, created_at: OMIT, modified_at: OMIT, start_date: OMIT, end_date: OMIT, status: OMIT, - name: OMIT, additional_properties: nil) + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, status: OMIT, + start_date: OMIT, end_date: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT + @name = name if name != OMIT + @status = status if status != OMIT @start_date = start_date if start_date != OMIT @end_date = end_date if end_date != OMIT - @status = status if status != OMIT - @name = name if name != OMIT + @field_mappings = field_mappings if field_mappings != OMIT + @remote_data = remote_data if remote_data != OMIT @additional_properties = additional_properties @_field_set = { "id": id, + "remote_id": remote_id, "created_at": created_at, "modified_at": modified_at, + "name": name, + "status": status, "start_date": start_date, "end_date": end_date, - "status": status, - "name": name + "field_mappings": field_mappings, + "remote_data": remote_data }.reject do |_k, v| v == OMIT end @@ -77,20 +93,29 @@ def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) id = parsed_json["id"] + remote_id = parsed_json["remote_id"] created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + name = parsed_json["name"] + status = parsed_json["status"] start_date = (DateTime.parse(parsed_json["start_date"]) unless parsed_json["start_date"].nil?) end_date = (DateTime.parse(parsed_json["end_date"]) unless parsed_json["end_date"].nil?) - status = parsed_json["status"] - name = parsed_json["name"] + field_mappings = parsed_json["field_mappings"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteData.from_json(json_object: item) + end new( id: id, + remote_id: remote_id, created_at: created_at, modified_at: modified_at, + name: name, + status: status, start_date: start_date, end_date: end_date, - status: status, - name: name, + field_mappings: field_mappings, + remote_data: remote_data, additional_properties: struct ) end @@ -110,12 +135,15 @@ def to_json(*_args) # @return [Void] def self.validate_raw(obj:) obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") + obj.status&.is_a?(Merge::Accounting::Status895Enum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") obj.start_date&.is_a?(DateTime) != false || raise("Passed value for field obj.start_date is not the expected type, validation failed.") obj.end_date&.is_a?(DateTime) != false || raise("Passed value for field obj.end_date is not the expected type, validation failed.") - obj.status&.is_a?(Merge::Accounting::AccountingPeriodStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") - obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") + obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") + obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/async_post_task.rb b/lib/merge_ruby_client/accounting/types/async_post_task.rb new file mode 100644 index 00000000..8d9da663 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/async_post_task.rb @@ -0,0 +1,74 @@ +# frozen_string_literal: true + +require_relative "async_post_task_status_enum" +require_relative "async_post_task_result" +require "ostruct" +require "json" + +module Merge + module Accounting + class AsyncPostTask + # @return [Merge::Accounting::AsyncPostTaskStatusEnum] + attr_reader :status + # @return [Merge::Accounting::AsyncPostTaskResult] + attr_reader :result + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param status [Merge::Accounting::AsyncPostTaskStatusEnum] + # @param result [Merge::Accounting::AsyncPostTaskResult] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::AsyncPostTask] + def initialize(status:, result:, additional_properties: nil) + @status = status + @result = result + @additional_properties = additional_properties + @_field_set = { "status": status, "result": result } + end + + # Deserialize a JSON object to an instance of AsyncPostTask + # + # @param json_object [String] + # @return [Merge::Accounting::AsyncPostTask] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + status = parsed_json["status"] + if parsed_json["result"].nil? + result = nil + else + result = parsed_json["result"].to_json + result = Merge::Accounting::AsyncPostTaskResult.from_json(json_object: result) + end + new( + status: status, + result: result, + additional_properties: struct + ) + end + + # Serialize an instance of AsyncPostTask to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.status.is_a?(Merge::Accounting::AsyncPostTaskStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") + Merge::Accounting::AsyncPostTaskResult.validate_raw(obj: obj.result) + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/async_post_task_result.rb b/lib/merge_ruby_client/accounting/types/async_post_task_result.rb new file mode 100644 index 00000000..5fb93911 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/async_post_task_result.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +require "ostruct" +require "json" + +module Merge + module Accounting + class AsyncPostTaskResult + # @return [Integer] + attr_reader :status_code + # @return [Hash{String => Object}] + attr_reader :response + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param status_code [Integer] + # @param response [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::AsyncPostTaskResult] + def initialize(status_code: OMIT, response: OMIT, additional_properties: nil) + @status_code = status_code if status_code != OMIT + @response = response if response != OMIT + @additional_properties = additional_properties + @_field_set = { "status_code": status_code, "response": response }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of AsyncPostTaskResult + # + # @param json_object [String] + # @return [Merge::Accounting::AsyncPostTaskResult] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + status_code = parsed_json["status_code"] + response = parsed_json["response"] + new( + status_code: status_code, + response: response, + additional_properties: struct + ) + end + + # Serialize an instance of AsyncPostTaskResult to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.status_code&.is_a?(Integer) != false || raise("Passed value for field obj.status_code is not the expected type, validation failed.") + obj.response&.is_a?(Hash) != false || raise("Passed value for field obj.response is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/async_post_task_status_enum.rb b/lib/merge_ruby_client/accounting/types/async_post_task_status_enum.rb new file mode 100644 index 00000000..831ebbdf --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/async_post_task_status_enum.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `QUEUED` - QUEUED + # - `IN_PROGRESS` - IN_PROGRESS + # - `COMPLETED` - COMPLETED + # - `FAILURE` - FAILURE + class AsyncPostTaskStatusEnum + QUEUED = "QUEUED" + IN_PROGRESS = "IN_PROGRESS" + COMPLETED = "COMPLETED" + FAILURE = "FAILURE" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/audit_log_event.rb b/lib/merge_ruby_client/accounting/types/audit_log_event.rb index e04836e9..c3c0ef93 100644 --- a/lib/merge_ruby_client/accounting/types/audit_log_event.rb +++ b/lib/merge_ruby_client/accounting/types/audit_log_event.rb @@ -65,12 +65,19 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK # - `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK # - `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK # - `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + # - `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED attr_reader :event_type # @return [String] attr_reader :event_description @@ -135,12 +142,19 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK # - `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK # - `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK # - `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + # - `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED # @param event_description [String] # @param created_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/accounting/types/balance_sheet.rb b/lib/merge_ruby_client/accounting/types/balance_sheet.rb index f3fc8a57..1596e339 100644 --- a/lib/merge_ruby_client/accounting/types/balance_sheet.rb +++ b/lib/merge_ruby_client/accounting/types/balance_sheet.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "date" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "balance_sheet_company" require_relative "report_item" require_relative "remote_data" @@ -29,7 +29,7 @@ class BalanceSheet attr_reader :modified_at # @return [String] The balance sheet's name. attr_reader :name - # @return [Merge::Accounting::CurrencyEnum] The balance sheet's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The balance sheet's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -353,7 +353,9 @@ class BalanceSheet # @return [DateTime] The time that balance sheet was generated by the accounting system. attr_reader :remote_generated_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -372,7 +374,7 @@ class BalanceSheet # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The balance sheet's name. - # @param currency [Merge::Accounting::CurrencyEnum] The balance sheet's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The balance sheet's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -688,7 +690,9 @@ class BalanceSheet # @param equity [Array] # @param remote_generated_at [DateTime] The time that balance sheet was generated by the accounting system. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition @@ -816,7 +820,7 @@ def self.validate_raw(obj:) obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::BalanceSheetCompany.validate_raw(obj: obj.company) obj.date&.is_a?(DateTime) != false || raise("Passed value for field obj.date is not the expected type, validation failed.") obj.net_assets&.is_a?(Float) != false || raise("Passed value for field obj.net_assets is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_account.rb b/lib/merge_ruby_client/accounting/types/bank_feed_account.rb new file mode 100644 index 00000000..91e28e99 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_account.rb @@ -0,0 +1,834 @@ +# frozen_string_literal: true + +require "date" +require_relative "transaction_currency_enum" +require_relative "feed_status_enum" +require_relative "bank_feed_account_account_type_enum" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The BankFeedAccount Object + # ### Description + # The `BankFeedAccount` object represents a bank feed account, detailing various + # attributes including account identifiers, names, currency, and balance + # information. This object is central to managing and tracking bank feed accounts + # within the system. + # ### Usage Example + # Fetch from the `GET BankFeedAccount` endpoint to view details of a bank feed + # account. + class BankFeedAccount + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [String] The unique identifier of the source account from our customer’s platform. + attr_reader :source_account_id + # @return [String] The unique identifier of the target account from the third party software. + attr_reader :target_account_id + # @return [String] The name of the source account as stored in our customer’s platform. + attr_reader :source_account_name + # @return [String] The human-readable account number of the source account as stored in our + # customer’s platform. + attr_reader :source_account_number + # @return [String] The name of the target account from the third party software. + attr_reader :target_account_name + # @return [Merge::Accounting::TransactionCurrencyEnum] The currency code of the bank feed. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + attr_reader :currency + # @return [Merge::Accounting::FeedStatusEnum] The status of the bank feed. + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + attr_reader :feed_status + # @return [DateTime] The start date of the bank feed’s transactions. + attr_reader :feed_start_date + # @return [Float] The current balance of funds in the source account. + attr_reader :source_account_balance + # @return [Merge::Accounting::BankFeedAccountAccountTypeEnum] The type of the account. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + attr_reader :account_type + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [Hash{String => Object}] + attr_reader :field_mappings + # @return [Array Object}>] + attr_reader :remote_data + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param source_account_id [String] The unique identifier of the source account from our customer’s platform. + # @param target_account_id [String] The unique identifier of the target account from the third party software. + # @param source_account_name [String] The name of the source account as stored in our customer’s platform. + # @param source_account_number [String] The human-readable account number of the source account as stored in our + # customer’s platform. + # @param target_account_name [String] The name of the target account from the third party software. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The currency code of the bank feed. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + # @param feed_status [Merge::Accounting::FeedStatusEnum] The status of the bank feed. + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + # @param feed_start_date [DateTime] The start date of the bank feed’s transactions. + # @param source_account_balance [Float] The current balance of funds in the source account. + # @param account_type [Merge::Accounting::BankFeedAccountAccountTypeEnum] The type of the account. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param field_mappings [Hash{String => Object}] + # @param remote_data [Array Object}>] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::BankFeedAccount] + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, source_account_id: OMIT, + target_account_id: OMIT, source_account_name: OMIT, source_account_number: OMIT, target_account_name: OMIT, currency: OMIT, feed_status: OMIT, feed_start_date: OMIT, source_account_balance: OMIT, account_type: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @source_account_id = source_account_id if source_account_id != OMIT + @target_account_id = target_account_id if target_account_id != OMIT + @source_account_name = source_account_name if source_account_name != OMIT + @source_account_number = source_account_number if source_account_number != OMIT + @target_account_name = target_account_name if target_account_name != OMIT + @currency = currency if currency != OMIT + @feed_status = feed_status if feed_status != OMIT + @feed_start_date = feed_start_date if feed_start_date != OMIT + @source_account_balance = source_account_balance if source_account_balance != OMIT + @account_type = account_type if account_type != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @field_mappings = field_mappings if field_mappings != OMIT + @remote_data = remote_data if remote_data != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "source_account_id": source_account_id, + "target_account_id": target_account_id, + "source_account_name": source_account_name, + "source_account_number": source_account_number, + "target_account_name": target_account_name, + "currency": currency, + "feed_status": feed_status, + "feed_start_date": feed_start_date, + "source_account_balance": source_account_balance, + "account_type": account_type, + "remote_was_deleted": remote_was_deleted, + "field_mappings": field_mappings, + "remote_data": remote_data + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of BankFeedAccount + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedAccount] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + source_account_id = parsed_json["source_account_id"] + target_account_id = parsed_json["target_account_id"] + source_account_name = parsed_json["source_account_name"] + source_account_number = parsed_json["source_account_number"] + target_account_name = parsed_json["target_account_name"] + currency = parsed_json["currency"] + feed_status = parsed_json["feed_status"] + feed_start_date = (DateTime.parse(parsed_json["feed_start_date"]) unless parsed_json["feed_start_date"].nil?) + source_account_balance = parsed_json["source_account_balance"] + account_type = parsed_json["account_type"] + remote_was_deleted = parsed_json["remote_was_deleted"] + field_mappings = parsed_json["field_mappings"] + remote_data = parsed_json["remote_data"] + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + source_account_id: source_account_id, + target_account_id: target_account_id, + source_account_name: source_account_name, + source_account_number: source_account_number, + target_account_name: target_account_name, + currency: currency, + feed_status: feed_status, + feed_start_date: feed_start_date, + source_account_balance: source_account_balance, + account_type: account_type, + remote_was_deleted: remote_was_deleted, + field_mappings: field_mappings, + remote_data: remote_data, + additional_properties: struct + ) + end + + # Serialize an instance of BankFeedAccount to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.source_account_id&.is_a?(String) != false || raise("Passed value for field obj.source_account_id is not the expected type, validation failed.") + obj.target_account_id&.is_a?(String) != false || raise("Passed value for field obj.target_account_id is not the expected type, validation failed.") + obj.source_account_name&.is_a?(String) != false || raise("Passed value for field obj.source_account_name is not the expected type, validation failed.") + obj.source_account_number&.is_a?(String) != false || raise("Passed value for field obj.source_account_number is not the expected type, validation failed.") + obj.target_account_name&.is_a?(String) != false || raise("Passed value for field obj.target_account_name is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.feed_status&.is_a?(Merge::Accounting::FeedStatusEnum) != false || raise("Passed value for field obj.feed_status is not the expected type, validation failed.") + obj.feed_start_date&.is_a?(DateTime) != false || raise("Passed value for field obj.feed_start_date is not the expected type, validation failed.") + obj.source_account_balance&.is_a?(Float) != false || raise("Passed value for field obj.source_account_balance is not the expected type, validation failed.") + obj.account_type&.is_a?(Merge::Accounting::BankFeedAccountAccountTypeEnum) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") + obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_account_account_type_enum.rb b/lib/merge_ruby_client/accounting/types/bank_feed_account_account_type_enum.rb new file mode 100644 index 00000000..b02c230c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_account_account_type_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + class BankFeedAccountAccountTypeEnum + BANK = "BANK" + CREDIT_CARD = "CREDIT_CARD" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_account_request.rb b/lib/merge_ruby_client/accounting/types/bank_feed_account_request.rb new file mode 100644 index 00000000..431b5c8c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_account_request.rb @@ -0,0 +1,788 @@ +# frozen_string_literal: true + +require_relative "transaction_currency_enum" +require_relative "feed_status_enum" +require "date" +require_relative "bank_feed_account_account_type_enum" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The BankFeedAccount Object + # ### Description + # The `BankFeedAccount` object represents a bank feed account, detailing various + # attributes including account identifiers, names, currency, and balance + # information. This object is central to managing and tracking bank feed accounts + # within the system. + # ### Usage Example + # Fetch from the `GET BankFeedAccount` endpoint to view details of a bank feed + # account. + class BankFeedAccountRequest + # @return [String] The unique identifier of the source account from our customer’s platform. + attr_reader :source_account_id + # @return [String] The unique identifier of the target account from the third party software. + attr_reader :target_account_id + # @return [String] The name of the source account as stored in our customer’s platform. + attr_reader :source_account_name + # @return [String] The human-readable account number of the source account as stored in our + # customer’s platform. + attr_reader :source_account_number + # @return [String] The name of the target account from the third party software. + attr_reader :target_account_name + # @return [Merge::Accounting::TransactionCurrencyEnum] The currency code of the bank feed. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + attr_reader :currency + # @return [Merge::Accounting::FeedStatusEnum] The status of the bank feed. + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + attr_reader :feed_status + # @return [DateTime] The start date of the bank feed’s transactions. + attr_reader :feed_start_date + # @return [Float] The current balance of funds in the source account. + attr_reader :source_account_balance + # @return [Merge::Accounting::BankFeedAccountAccountTypeEnum] The type of the account. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + attr_reader :account_type + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param source_account_id [String] The unique identifier of the source account from our customer’s platform. + # @param target_account_id [String] The unique identifier of the target account from the third party software. + # @param source_account_name [String] The name of the source account as stored in our customer’s platform. + # @param source_account_number [String] The human-readable account number of the source account as stored in our + # customer’s platform. + # @param target_account_name [String] The name of the target account from the third party software. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The currency code of the bank feed. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + # @param feed_status [Merge::Accounting::FeedStatusEnum] The status of the bank feed. + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + # @param feed_start_date [DateTime] The start date of the bank feed’s transactions. + # @param source_account_balance [Float] The current balance of funds in the source account. + # @param account_type [Merge::Accounting::BankFeedAccountAccountTypeEnum] The type of the account. + # - `BANK` - BANK + # - `CREDIT_CARD` - CREDIT_CARD + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::BankFeedAccountRequest] + def initialize(source_account_id: OMIT, target_account_id: OMIT, source_account_name: OMIT, + source_account_number: OMIT, target_account_name: OMIT, currency: OMIT, feed_status: OMIT, feed_start_date: OMIT, source_account_balance: OMIT, account_type: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @source_account_id = source_account_id if source_account_id != OMIT + @target_account_id = target_account_id if target_account_id != OMIT + @source_account_name = source_account_name if source_account_name != OMIT + @source_account_number = source_account_number if source_account_number != OMIT + @target_account_name = target_account_name if target_account_name != OMIT + @currency = currency if currency != OMIT + @feed_status = feed_status if feed_status != OMIT + @feed_start_date = feed_start_date if feed_start_date != OMIT + @source_account_balance = source_account_balance if source_account_balance != OMIT + @account_type = account_type if account_type != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "source_account_id": source_account_id, + "target_account_id": target_account_id, + "source_account_name": source_account_name, + "source_account_number": source_account_number, + "target_account_name": target_account_name, + "currency": currency, + "feed_status": feed_status, + "feed_start_date": feed_start_date, + "source_account_balance": source_account_balance, + "account_type": account_type, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of BankFeedAccountRequest + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedAccountRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + source_account_id = parsed_json["source_account_id"] + target_account_id = parsed_json["target_account_id"] + source_account_name = parsed_json["source_account_name"] + source_account_number = parsed_json["source_account_number"] + target_account_name = parsed_json["target_account_name"] + currency = parsed_json["currency"] + feed_status = parsed_json["feed_status"] + feed_start_date = (DateTime.parse(parsed_json["feed_start_date"]) unless parsed_json["feed_start_date"].nil?) + source_account_balance = parsed_json["source_account_balance"] + account_type = parsed_json["account_type"] + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + source_account_id: source_account_id, + target_account_id: target_account_id, + source_account_name: source_account_name, + source_account_number: source_account_number, + target_account_name: target_account_name, + currency: currency, + feed_status: feed_status, + feed_start_date: feed_start_date, + source_account_balance: source_account_balance, + account_type: account_type, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of BankFeedAccountRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.source_account_id&.is_a?(String) != false || raise("Passed value for field obj.source_account_id is not the expected type, validation failed.") + obj.target_account_id&.is_a?(String) != false || raise("Passed value for field obj.target_account_id is not the expected type, validation failed.") + obj.source_account_name&.is_a?(String) != false || raise("Passed value for field obj.source_account_name is not the expected type, validation failed.") + obj.source_account_number&.is_a?(String) != false || raise("Passed value for field obj.source_account_number is not the expected type, validation failed.") + obj.target_account_name&.is_a?(String) != false || raise("Passed value for field obj.target_account_name is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.feed_status&.is_a?(Merge::Accounting::FeedStatusEnum) != false || raise("Passed value for field obj.feed_status is not the expected type, validation failed.") + obj.feed_start_date&.is_a?(DateTime) != false || raise("Passed value for field obj.feed_start_date is not the expected type, validation failed.") + obj.source_account_balance&.is_a?(Float) != false || raise("Passed value for field obj.source_account_balance is not the expected type, validation failed.") + obj.account_type&.is_a?(Merge::Accounting::BankFeedAccountAccountTypeEnum) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_account_response.rb b/lib/merge_ruby_client/accounting/types/bank_feed_account_response.rb new file mode 100644 index 00000000..f27e81de --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_account_response.rb @@ -0,0 +1,101 @@ +# frozen_string_literal: true + +require_relative "bank_feed_account" +require_relative "warning_validation_problem" +require_relative "error_validation_problem" +require_relative "debug_mode_log" +require "ostruct" +require "json" + +module Merge + module Accounting + class BankFeedAccountResponse + # @return [Merge::Accounting::BankFeedAccount] + attr_reader :model + # @return [Array] + attr_reader :warnings + # @return [Array] + attr_reader :errors + # @return [Array] + attr_reader :logs + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param model [Merge::Accounting::BankFeedAccount] + # @param warnings [Array] + # @param errors [Array] + # @param logs [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::BankFeedAccountResponse] + def initialize(model:, warnings:, errors:, logs: OMIT, additional_properties: nil) + @model = model + @warnings = warnings + @errors = errors + @logs = logs if logs != OMIT + @additional_properties = additional_properties + @_field_set = { "model": model, "warnings": warnings, "errors": errors, "logs": logs }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of BankFeedAccountResponse + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedAccountResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["model"].nil? + model = nil + else + model = parsed_json["model"].to_json + model = Merge::Accounting::BankFeedAccount.from_json(json_object: model) + end + warnings = parsed_json["warnings"]&.map do |item| + item = item.to_json + Merge::Accounting::WarningValidationProblem.from_json(json_object: item) + end + errors = parsed_json["errors"]&.map do |item| + item = item.to_json + Merge::Accounting::ErrorValidationProblem.from_json(json_object: item) + end + logs = parsed_json["logs"]&.map do |item| + item = item.to_json + Merge::Accounting::DebugModeLog.from_json(json_object: item) + end + new( + model: model, + warnings: warnings, + errors: errors, + logs: logs, + additional_properties: struct + ) + end + + # Serialize an instance of BankFeedAccountResponse to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + Merge::Accounting::BankFeedAccount.validate_raw(obj: obj.model) + obj.warnings.is_a?(Array) != false || raise("Passed value for field obj.warnings is not the expected type, validation failed.") + obj.errors.is_a?(Array) != false || raise("Passed value for field obj.errors is not the expected type, validation failed.") + obj.logs&.is_a?(Array) != false || raise("Passed value for field obj.logs is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_transaction.rb b/lib/merge_ruby_client/accounting/types/bank_feed_transaction.rb new file mode 100644 index 00000000..0f5ea32e --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_transaction.rb @@ -0,0 +1,209 @@ +# frozen_string_literal: true + +require "date" +require_relative "bank_feed_transaction_bank_feed_account" +require_relative "credit_or_debit_enum" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The BankFeedTransaction Object + # ### Description + # The `BankFeedTransaction` object is used to represent transactions linked to a + # bank feed account. This includes details about the transaction such as the date, + # amount, description, and type. + # ### Usage Example + # Fetch from the `GET BankFeedTransaction` endpoint to view details of a + # transaction associated with a bank feed account. + class BankFeedTransaction + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Accounting::BankFeedTransactionBankFeedAccount] The bank feed account associated with the transaction. + attr_reader :bank_feed_account + # @return [DateTime] The date that the transaction occurred. + attr_reader :transaction_date + # @return [DateTime] The date the transaction was posted to the bank account. + attr_reader :posted_date + # @return [Float] The amount of the transaction. + attr_reader :amount + # @return [String] The description of the transaction. + attr_reader :description + # @return [String] The underlying type of the transaction. + attr_reader :transaction_type + # @return [String] The person or merchant who initiated the transaction, or alternatively, to whom + # the transaction was paid. + attr_reader :payee + # @return [Merge::Accounting::CreditOrDebitEnum] If the transaction is of type debit or credit. + # - `CREDIT` - CREDIT + # - `DEBIT` - DEBIT + attr_reader :credit_or_debit + # @return [String] The customer’s identifier for the transaction. + attr_reader :source_transaction_id + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [Boolean] Whether or not this transaction has been processed by the external system. For + # example, NetSuite writes this field as True when the SuiteApp has processed the + # transaction. + attr_reader :is_processed + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param bank_feed_account [Merge::Accounting::BankFeedTransactionBankFeedAccount] The bank feed account associated with the transaction. + # @param transaction_date [DateTime] The date that the transaction occurred. + # @param posted_date [DateTime] The date the transaction was posted to the bank account. + # @param amount [Float] The amount of the transaction. + # @param description [String] The description of the transaction. + # @param transaction_type [String] The underlying type of the transaction. + # @param payee [String] The person or merchant who initiated the transaction, or alternatively, to whom + # the transaction was paid. + # @param credit_or_debit [Merge::Accounting::CreditOrDebitEnum] If the transaction is of type debit or credit. + # - `CREDIT` - CREDIT + # - `DEBIT` - DEBIT + # @param source_transaction_id [String] The customer’s identifier for the transaction. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param is_processed [Boolean] Whether or not this transaction has been processed by the external system. For + # example, NetSuite writes this field as True when the SuiteApp has processed the + # transaction. + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::BankFeedTransaction] + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, bank_feed_account: OMIT, + transaction_date: OMIT, posted_date: OMIT, amount: OMIT, description: OMIT, transaction_type: OMIT, payee: OMIT, credit_or_debit: OMIT, source_transaction_id: OMIT, remote_was_deleted: OMIT, is_processed: OMIT, additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @bank_feed_account = bank_feed_account if bank_feed_account != OMIT + @transaction_date = transaction_date if transaction_date != OMIT + @posted_date = posted_date if posted_date != OMIT + @amount = amount if amount != OMIT + @description = description if description != OMIT + @transaction_type = transaction_type if transaction_type != OMIT + @payee = payee if payee != OMIT + @credit_or_debit = credit_or_debit if credit_or_debit != OMIT + @source_transaction_id = source_transaction_id if source_transaction_id != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @is_processed = is_processed if is_processed != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "bank_feed_account": bank_feed_account, + "transaction_date": transaction_date, + "posted_date": posted_date, + "amount": amount, + "description": description, + "transaction_type": transaction_type, + "payee": payee, + "credit_or_debit": credit_or_debit, + "source_transaction_id": source_transaction_id, + "remote_was_deleted": remote_was_deleted, + "is_processed": is_processed + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of BankFeedTransaction + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedTransaction] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["bank_feed_account"].nil? + bank_feed_account = nil + else + bank_feed_account = parsed_json["bank_feed_account"].to_json + bank_feed_account = Merge::Accounting::BankFeedTransactionBankFeedAccount.from_json(json_object: bank_feed_account) + end + transaction_date = (DateTime.parse(parsed_json["transaction_date"]) unless parsed_json["transaction_date"].nil?) + posted_date = (DateTime.parse(parsed_json["posted_date"]) unless parsed_json["posted_date"].nil?) + amount = parsed_json["amount"] + description = parsed_json["description"] + transaction_type = parsed_json["transaction_type"] + payee = parsed_json["payee"] + credit_or_debit = parsed_json["credit_or_debit"] + source_transaction_id = parsed_json["source_transaction_id"] + remote_was_deleted = parsed_json["remote_was_deleted"] + is_processed = parsed_json["is_processed"] + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + bank_feed_account: bank_feed_account, + transaction_date: transaction_date, + posted_date: posted_date, + amount: amount, + description: description, + transaction_type: transaction_type, + payee: payee, + credit_or_debit: credit_or_debit, + source_transaction_id: source_transaction_id, + remote_was_deleted: remote_was_deleted, + is_processed: is_processed, + additional_properties: struct + ) + end + + # Serialize an instance of BankFeedTransaction to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.bank_feed_account.nil? || Merge::Accounting::BankFeedTransactionBankFeedAccount.validate_raw(obj: obj.bank_feed_account) + obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") + obj.posted_date&.is_a?(DateTime) != false || raise("Passed value for field obj.posted_date is not the expected type, validation failed.") + obj.amount&.is_a?(Float) != false || raise("Passed value for field obj.amount is not the expected type, validation failed.") + obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.transaction_type&.is_a?(String) != false || raise("Passed value for field obj.transaction_type is not the expected type, validation failed.") + obj.payee&.is_a?(String) != false || raise("Passed value for field obj.payee is not the expected type, validation failed.") + obj.credit_or_debit&.is_a?(Merge::Accounting::CreditOrDebitEnum) != false || raise("Passed value for field obj.credit_or_debit is not the expected type, validation failed.") + obj.source_transaction_id&.is_a?(String) != false || raise("Passed value for field obj.source_transaction_id is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.is_processed&.is_a?(Boolean) != false || raise("Passed value for field obj.is_processed is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_transaction_bank_feed_account.rb b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_bank_feed_account.rb new file mode 100644 index 00000000..5a68c76b --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_bank_feed_account.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "bank_feed_account" + +module Merge + module Accounting + # The bank feed account associated with the transaction. + class BankFeedTransactionBankFeedAccount + # Deserialize a JSON object to an instance of BankFeedTransactionBankFeedAccount + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedTransactionBankFeedAccount] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::BankFeedAccount.validate_raw(obj: struct) + return Merge::Accounting::BankFeedAccount.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::BankFeedAccount.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request.rb b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request.rb new file mode 100644 index 00000000..277440ab --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request.rb @@ -0,0 +1,167 @@ +# frozen_string_literal: true + +require_relative "bank_feed_transaction_request_request_bank_feed_account" +require "date" +require_relative "credit_or_debit_enum" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The BankFeedTransaction Object + # ### Description + # The `BankFeedTransaction` object is used to represent transactions linked to a + # bank feed account. This includes details about the transaction such as the date, + # amount, description, and type. + # ### Usage Example + # Fetch from the `GET BankFeedTransaction` endpoint to view details of a + # transaction associated with a bank feed account. + class BankFeedTransactionRequestRequest + # @return [Merge::Accounting::BankFeedTransactionRequestRequestBankFeedAccount] The bank feed account associated with the transaction. + attr_reader :bank_feed_account + # @return [DateTime] The date that the transaction occurred. + attr_reader :transaction_date + # @return [DateTime] The date the transaction was posted to the bank account. + attr_reader :posted_date + # @return [Float] The amount of the transaction. + attr_reader :amount + # @return [String] The description of the transaction. + attr_reader :description + # @return [String] The underlying type of the transaction. + attr_reader :transaction_type + # @return [String] The person or merchant who initiated the transaction, or alternatively, to whom + # the transaction was paid. + attr_reader :payee + # @return [Merge::Accounting::CreditOrDebitEnum] If the transaction is of type debit or credit. + # - `CREDIT` - CREDIT + # - `DEBIT` - DEBIT + attr_reader :credit_or_debit + # @return [String] The customer’s identifier for the transaction. + attr_reader :source_transaction_id + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param bank_feed_account [Merge::Accounting::BankFeedTransactionRequestRequestBankFeedAccount] The bank feed account associated with the transaction. + # @param transaction_date [DateTime] The date that the transaction occurred. + # @param posted_date [DateTime] The date the transaction was posted to the bank account. + # @param amount [Float] The amount of the transaction. + # @param description [String] The description of the transaction. + # @param transaction_type [String] The underlying type of the transaction. + # @param payee [String] The person or merchant who initiated the transaction, or alternatively, to whom + # the transaction was paid. + # @param credit_or_debit [Merge::Accounting::CreditOrDebitEnum] If the transaction is of type debit or credit. + # - `CREDIT` - CREDIT + # - `DEBIT` - DEBIT + # @param source_transaction_id [String] The customer’s identifier for the transaction. + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::BankFeedTransactionRequestRequest] + def initialize(bank_feed_account: OMIT, transaction_date: OMIT, posted_date: OMIT, amount: OMIT, + description: OMIT, transaction_type: OMIT, payee: OMIT, credit_or_debit: OMIT, source_transaction_id: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @bank_feed_account = bank_feed_account if bank_feed_account != OMIT + @transaction_date = transaction_date if transaction_date != OMIT + @posted_date = posted_date if posted_date != OMIT + @amount = amount if amount != OMIT + @description = description if description != OMIT + @transaction_type = transaction_type if transaction_type != OMIT + @payee = payee if payee != OMIT + @credit_or_debit = credit_or_debit if credit_or_debit != OMIT + @source_transaction_id = source_transaction_id if source_transaction_id != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "bank_feed_account": bank_feed_account, + "transaction_date": transaction_date, + "posted_date": posted_date, + "amount": amount, + "description": description, + "transaction_type": transaction_type, + "payee": payee, + "credit_or_debit": credit_or_debit, + "source_transaction_id": source_transaction_id, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of BankFeedTransactionRequestRequest + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedTransactionRequestRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["bank_feed_account"].nil? + bank_feed_account = nil + else + bank_feed_account = parsed_json["bank_feed_account"].to_json + bank_feed_account = Merge::Accounting::BankFeedTransactionRequestRequestBankFeedAccount.from_json(json_object: bank_feed_account) + end + transaction_date = (DateTime.parse(parsed_json["transaction_date"]) unless parsed_json["transaction_date"].nil?) + posted_date = (DateTime.parse(parsed_json["posted_date"]) unless parsed_json["posted_date"].nil?) + amount = parsed_json["amount"] + description = parsed_json["description"] + transaction_type = parsed_json["transaction_type"] + payee = parsed_json["payee"] + credit_or_debit = parsed_json["credit_or_debit"] + source_transaction_id = parsed_json["source_transaction_id"] + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + bank_feed_account: bank_feed_account, + transaction_date: transaction_date, + posted_date: posted_date, + amount: amount, + description: description, + transaction_type: transaction_type, + payee: payee, + credit_or_debit: credit_or_debit, + source_transaction_id: source_transaction_id, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of BankFeedTransactionRequestRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.bank_feed_account.nil? || Merge::Accounting::BankFeedTransactionRequestRequestBankFeedAccount.validate_raw(obj: obj.bank_feed_account) + obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") + obj.posted_date&.is_a?(DateTime) != false || raise("Passed value for field obj.posted_date is not the expected type, validation failed.") + obj.amount&.is_a?(Float) != false || raise("Passed value for field obj.amount is not the expected type, validation failed.") + obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.transaction_type&.is_a?(String) != false || raise("Passed value for field obj.transaction_type is not the expected type, validation failed.") + obj.payee&.is_a?(String) != false || raise("Passed value for field obj.payee is not the expected type, validation failed.") + obj.credit_or_debit&.is_a?(Merge::Accounting::CreditOrDebitEnum) != false || raise("Passed value for field obj.credit_or_debit is not the expected type, validation failed.") + obj.source_transaction_id&.is_a?(String) != false || raise("Passed value for field obj.source_transaction_id is not the expected type, validation failed.") + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request_bank_feed_account.rb b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request_bank_feed_account.rb new file mode 100644 index 00000000..6fc52c45 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_request_request_bank_feed_account.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "bank_feed_account" + +module Merge + module Accounting + # The bank feed account associated with the transaction. + class BankFeedTransactionRequestRequestBankFeedAccount + # Deserialize a JSON object to an instance of + # BankFeedTransactionRequestRequestBankFeedAccount + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedTransactionRequestRequestBankFeedAccount] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::BankFeedAccount.validate_raw(obj: struct) + return Merge::Accounting::BankFeedAccount.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::BankFeedAccount.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/bank_feed_transaction_response.rb b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_response.rb new file mode 100644 index 00000000..85f94413 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/bank_feed_transaction_response.rb @@ -0,0 +1,101 @@ +# frozen_string_literal: true + +require_relative "bank_feed_transaction" +require_relative "warning_validation_problem" +require_relative "error_validation_problem" +require_relative "debug_mode_log" +require "ostruct" +require "json" + +module Merge + module Accounting + class BankFeedTransactionResponse + # @return [Merge::Accounting::BankFeedTransaction] + attr_reader :model + # @return [Array] + attr_reader :warnings + # @return [Array] + attr_reader :errors + # @return [Array] + attr_reader :logs + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param model [Merge::Accounting::BankFeedTransaction] + # @param warnings [Array] + # @param errors [Array] + # @param logs [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::BankFeedTransactionResponse] + def initialize(model:, warnings:, errors:, logs: OMIT, additional_properties: nil) + @model = model + @warnings = warnings + @errors = errors + @logs = logs if logs != OMIT + @additional_properties = additional_properties + @_field_set = { "model": model, "warnings": warnings, "errors": errors, "logs": logs }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of BankFeedTransactionResponse + # + # @param json_object [String] + # @return [Merge::Accounting::BankFeedTransactionResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["model"].nil? + model = nil + else + model = parsed_json["model"].to_json + model = Merge::Accounting::BankFeedTransaction.from_json(json_object: model) + end + warnings = parsed_json["warnings"]&.map do |item| + item = item.to_json + Merge::Accounting::WarningValidationProblem.from_json(json_object: item) + end + errors = parsed_json["errors"]&.map do |item| + item = item.to_json + Merge::Accounting::ErrorValidationProblem.from_json(json_object: item) + end + logs = parsed_json["logs"]&.map do |item| + item = item.to_json + Merge::Accounting::DebugModeLog.from_json(json_object: item) + end + new( + model: model, + warnings: warnings, + errors: errors, + logs: logs, + additional_properties: struct + ) + end + + # Serialize an instance of BankFeedTransactionResponse to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + Merge::Accounting::BankFeedTransaction.validate_raw(obj: obj.model) + obj.warnings.is_a?(Array) != false || raise("Passed value for field obj.warnings is not the expected type, validation failed.") + obj.errors.is_a?(Array) != false || raise("Passed value for field obj.errors is not the expected type, validation failed.") + obj.logs&.is_a?(Array) != false || raise("Passed value for field obj.logs is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb b/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb index 47b9a4c4..d235f26f 100644 --- a/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb +++ b/lib/merge_ruby_client/accounting/types/cash_flow_statement.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "date" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "cash_flow_statement_company" require_relative "report_item" require_relative "remote_data" @@ -28,7 +28,7 @@ class CashFlowStatement attr_reader :modified_at # @return [String] The cash flow statement's name. attr_reader :name - # @return [Merge::Accounting::CurrencyEnum] The cash flow statement's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The cash flow statement's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -355,7 +355,9 @@ class CashFlowStatement # @return [DateTime] The time that cash flow statement was generated by the accounting system. attr_reader :remote_generated_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -374,7 +376,7 @@ class CashFlowStatement # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The cash flow statement's name. - # @param currency [Merge::Accounting::CurrencyEnum] The cash flow statement's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The cash flow statement's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -691,7 +693,9 @@ class CashFlowStatement # @param financing_activities [Array] # @param remote_generated_at [DateTime] The time that cash flow statement was generated by the accounting system. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition @@ -827,7 +831,7 @@ def self.validate_raw(obj:) obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::CashFlowStatementCompany.validate_raw(obj: obj.company) obj.start_period&.is_a?(DateTime) != false || raise("Passed value for field obj.start_period is not the expected type, validation failed.") obj.end_period&.is_a?(DateTime) != false || raise("Passed value for field obj.end_period is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/company_info.rb b/lib/merge_ruby_client/accounting/types/company_info.rb index f9ffc761..02927ff2 100644 --- a/lib/merge_ruby_client/accounting/types/company_info.rb +++ b/lib/merge_ruby_client/accounting/types/company_info.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "date" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "address" require_relative "accounting_phone_number" require_relative "remote_data" @@ -36,7 +36,7 @@ class CompanyInfo attr_reader :fiscal_year_end_month # @return [Integer] The company's fiscal year end day. attr_reader :fiscal_year_end_day - # @return [Merge::Accounting::CurrencyEnum] The currency set in the company's accounting platform. + # @return [Merge::Accounting::TransactionCurrencyEnum] The currency set in the company's accounting platform. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -353,7 +353,9 @@ class CompanyInfo # @return [Array] attr_reader :phone_numbers # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -376,7 +378,7 @@ class CompanyInfo # @param tax_number [String] The company's tax number. # @param fiscal_year_end_month [Integer] The company's fiscal year end month. # @param fiscal_year_end_day [Integer] The company's fiscal year end day. - # @param currency [Merge::Accounting::CurrencyEnum] The currency set in the company's accounting platform. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The currency set in the company's accounting platform. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -688,7 +690,9 @@ class CompanyInfo # @param addresses [Array] # @param phone_numbers [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition @@ -816,7 +820,7 @@ def self.validate_raw(obj:) obj.tax_number&.is_a?(String) != false || raise("Passed value for field obj.tax_number is not the expected type, validation failed.") obj.fiscal_year_end_month&.is_a?(Integer) != false || raise("Passed value for field obj.fiscal_year_end_month is not the expected type, validation failed.") obj.fiscal_year_end_day&.is_a?(Integer) != false || raise("Passed value for field obj.fiscal_year_end_day is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") obj.urls&.is_a?(Array) != false || raise("Passed value for field obj.urls is not the expected type, validation failed.") obj.addresses&.is_a?(Array) != false || raise("Passed value for field obj.addresses is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/component_type_enum.rb b/lib/merge_ruby_client/accounting/types/component_type_enum.rb new file mode 100644 index 00000000..163cf79c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/component_type_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `SALES` - SALES + # - `PURCHASE` - PURCHASE + class ComponentTypeEnum + SALES = "SALES" + PURCHASE = "PURCHASE" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/contact.rb b/lib/merge_ruby_client/accounting/types/contact.rb index 9947b431..12ad6a90 100644 --- a/lib/merge_ruby_client/accounting/types/contact.rb +++ b/lib/merge_ruby_client/accounting/types/contact.rb @@ -5,6 +5,7 @@ require_relative "contact_addresses_item" require_relative "accounting_phone_number" require_relative "remote_data" +require_relative "remote_field" require "ostruct" require "json" @@ -54,12 +55,16 @@ class Contact # @return [Array] `AccountingPhoneNumber` object for the given `Contacts` object. attr_reader :phone_numbers # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings # @return [Array] attr_reader :remote_data + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -86,13 +91,16 @@ class Contact # @param addresses [Array] `Address` object IDs for the given `Contacts` object. # @param phone_numbers [Array] `AccountingPhoneNumber` object for the given `Contacts` object. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Contact] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, is_supplier: OMIT, - is_customer: OMIT, email_address: OMIT, tax_number: OMIT, status: OMIT, currency: OMIT, remote_updated_at: OMIT, company: OMIT, addresses: OMIT, phone_numbers: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + is_customer: OMIT, email_address: OMIT, tax_number: OMIT, status: OMIT, currency: OMIT, remote_updated_at: OMIT, company: OMIT, addresses: OMIT, phone_numbers: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -111,6 +119,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -130,7 +139,8 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "phone_numbers": phone_numbers, "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, - "remote_data": remote_data + "remote_data": remote_data, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -172,6 +182,10 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::RemoteData.from_json(json_object: item) end + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -191,6 +205,7 @@ def self.from_json(json_object:) remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, remote_data: remote_data, + remote_fields: remote_fields, additional_properties: struct ) end @@ -227,6 +242,7 @@ def self.validate_raw(obj:) obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/contact_request.rb b/lib/merge_ruby_client/accounting/types/contact_request.rb index 9f4194b8..1ab710c7 100644 --- a/lib/merge_ruby_client/accounting/types/contact_request.rb +++ b/lib/merge_ruby_client/accounting/types/contact_request.rb @@ -3,6 +3,7 @@ require_relative "status_7_d_1_enum" require_relative "contact_request_addresses_item" require_relative "accounting_phone_number_request" +require_relative "remote_field_request" require "ostruct" require "json" @@ -45,6 +46,8 @@ class ContactRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -67,10 +70,11 @@ class ContactRequest # @param phone_numbers [Array] `AccountingPhoneNumber` object for the given `Contacts` object. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::ContactRequest] def initialize(name: OMIT, is_supplier: OMIT, is_customer: OMIT, email_address: OMIT, tax_number: OMIT, - status: OMIT, currency: OMIT, company: OMIT, addresses: OMIT, phone_numbers: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + status: OMIT, currency: OMIT, company: OMIT, addresses: OMIT, phone_numbers: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @name = name if name != OMIT @is_supplier = is_supplier if is_supplier != OMIT @is_customer = is_customer if is_customer != OMIT @@ -83,6 +87,7 @@ def initialize(name: OMIT, is_supplier: OMIT, is_customer: OMIT, email_address: @phone_numbers = phone_numbers if phone_numbers != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "name": name, @@ -96,7 +101,8 @@ def initialize(name: OMIT, is_supplier: OMIT, is_customer: OMIT, email_address: "addresses": addresses, "phone_numbers": phone_numbers, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -127,6 +133,10 @@ def self.from_json(json_object:) end integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( name: name, is_supplier: is_supplier, @@ -140,6 +150,7 @@ def self.from_json(json_object:) phone_numbers: phone_numbers, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -170,6 +181,7 @@ def self.validate_raw(obj:) obj.phone_numbers&.is_a?(Array) != false || raise("Passed value for field obj.phone_numbers is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/credit_note.rb b/lib/merge_ruby_client/accounting/types/credit_note.rb index 8352545d..0c5856b9 100644 --- a/lib/merge_ruby_client/accounting/types/credit_note.rb +++ b/lib/merge_ruby_client/accounting/types/credit_note.rb @@ -6,10 +6,11 @@ require_relative "credit_note_company" require_relative "credit_note_line_item" require_relative "credit_note_tracking_categories_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "credit_note_payments_item" require_relative "credit_note_applied_payments_item" require_relative "credit_note_accounting_period" +require_relative "credit_note_apply_line_for_credit_note" require_relative "remote_data" require "ostruct" require "json" @@ -53,11 +54,14 @@ class CreditNote attr_reader :total_amount # @return [Float] The amount of value remaining in the credit note that the customer can use. attr_reader :remaining_credit + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Array] attr_reader :line_items # @return [Array] attr_reader :tracking_categories - # @return [Merge::Accounting::CurrencyEnum] The credit note's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The credit note's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -374,11 +378,16 @@ class CreditNote # @return [Array] A list of the Payment Applied to Lines common models related to a given Invoice, # Credit Note, or Journal Entry. attr_reader :applied_payments - # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. - attr_reader :remote_was_deleted # @return [Merge::Accounting::CreditNoteAccountingPeriod] The accounting period that the CreditNote was generated in. attr_reader :accounting_period + # @return [Array] A list of the CreditNote Applied to Lines common models related to a given + # Credit Note + attr_reader :applied_to_lines + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings # @return [Array] @@ -406,9 +415,11 @@ class CreditNote # @param exchange_rate [String] The credit note's exchange rate. # @param total_amount [Float] The credit note's total amount. # @param remaining_credit [Float] The amount of value remaining in the credit note that the customer can use. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param line_items [Array] # @param tracking_categories [Array] - # @param currency [Merge::Accounting::CurrencyEnum] The credit note's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The credit note's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -720,15 +731,19 @@ class CreditNote # @param payments [Array] Array of `Payment` object IDs # @param applied_payments [Array] A list of the Payment Applied to Lines common models related to a given Invoice, # Credit Note, or Journal Entry. - # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. # @param accounting_period [Merge::Accounting::CreditNoteAccountingPeriod] The accounting period that the CreditNote was generated in. + # @param applied_to_lines [Array] A list of the CreditNote Applied to Lines common models related to a given + # Credit Note + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::CreditNote] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, transaction_date: OMIT, - status: OMIT, number: OMIT, contact: OMIT, company: OMIT, exchange_rate: OMIT, total_amount: OMIT, remaining_credit: OMIT, line_items: OMIT, tracking_categories: OMIT, currency: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, payments: OMIT, applied_payments: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + status: OMIT, number: OMIT, contact: OMIT, company: OMIT, exchange_rate: OMIT, total_amount: OMIT, remaining_credit: OMIT, inclusive_of_tax: OMIT, line_items: OMIT, tracking_categories: OMIT, currency: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, payments: OMIT, applied_payments: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -741,6 +756,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @exchange_rate = exchange_rate if exchange_rate != OMIT @total_amount = total_amount if total_amount != OMIT @remaining_credit = remaining_credit if remaining_credit != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @line_items = line_items if line_items != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @currency = currency if currency != OMIT @@ -748,8 +764,9 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @payments = payments if payments != OMIT @applied_payments = applied_payments if applied_payments != OMIT - @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @accounting_period = accounting_period if accounting_period != OMIT + @applied_to_lines = applied_to_lines if applied_to_lines != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT @additional_properties = additional_properties @@ -766,6 +783,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "exchange_rate": exchange_rate, "total_amount": total_amount, "remaining_credit": remaining_credit, + "inclusive_of_tax": inclusive_of_tax, "line_items": line_items, "tracking_categories": tracking_categories, "currency": currency, @@ -773,8 +791,9 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "remote_updated_at": remote_updated_at, "payments": payments, "applied_payments": applied_payments, - "remote_was_deleted": remote_was_deleted, "accounting_period": accounting_period, + "applied_to_lines": applied_to_lines, + "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, "remote_data": remote_data }.reject do |_k, v| @@ -811,6 +830,7 @@ def self.from_json(json_object:) exchange_rate = parsed_json["exchange_rate"] total_amount = parsed_json["total_amount"] remaining_credit = parsed_json["remaining_credit"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] line_items = parsed_json["line_items"]&.map do |item| item = item.to_json Merge::Accounting::CreditNoteLineItem.from_json(json_object: item) @@ -834,13 +854,17 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::CreditNoteAppliedPaymentsItem.from_json(json_object: item) end - remote_was_deleted = parsed_json["remote_was_deleted"] if parsed_json["accounting_period"].nil? accounting_period = nil else accounting_period = parsed_json["accounting_period"].to_json accounting_period = Merge::Accounting::CreditNoteAccountingPeriod.from_json(json_object: accounting_period) end + applied_to_lines = parsed_json["applied_to_lines"]&.map do |item| + item = item.to_json + Merge::Accounting::CreditNoteApplyLineForCreditNote.from_json(json_object: item) + end + remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| item = item.to_json @@ -859,6 +883,7 @@ def self.from_json(json_object:) exchange_rate: exchange_rate, total_amount: total_amount, remaining_credit: remaining_credit, + inclusive_of_tax: inclusive_of_tax, line_items: line_items, tracking_categories: tracking_categories, currency: currency, @@ -866,8 +891,9 @@ def self.from_json(json_object:) remote_updated_at: remote_updated_at, payments: payments, applied_payments: applied_payments, - remote_was_deleted: remote_was_deleted, accounting_period: accounting_period, + applied_to_lines: applied_to_lines, + remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, remote_data: remote_data, additional_properties: struct @@ -900,15 +926,17 @@ def self.validate_raw(obj:) obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") obj.remaining_credit&.is_a?(Float) != false || raise("Passed value for field obj.remaining_credit is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.line_items&.is_a?(Array) != false || raise("Passed value for field obj.line_items is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.") obj.applied_payments&.is_a?(Array) != false || raise("Passed value for field obj.applied_payments is not the expected type, validation failed.") - obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.accounting_period.nil? || Merge::Accounting::CreditNoteAccountingPeriod.validate_raw(obj: obj.accounting_period) + obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note.rb b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note.rb new file mode 100644 index 00000000..130d336a --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note.rb @@ -0,0 +1,132 @@ +# frozen_string_literal: true + +require "date" +require_relative "credit_note_apply_line_for_credit_note_invoice" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The CreditNoteApplyLine Object + # ### Description + # The `CreditNoteApplyLine` is attached to the CreditNote model. + # ### Usage Example + # Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + # lines. + class CreditNoteApplyLineForCreditNote + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNoteInvoice] + attr_reader :invoice + # @return [DateTime] Date that the credit note is applied to the invoice. + attr_reader :applied_date + # @return [String] The amount of the Credit Note applied to the invoice. + attr_reader :applied_amount + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param invoice [Merge::Accounting::CreditNoteApplyLineForCreditNoteInvoice] + # @param applied_date [DateTime] Date that the credit note is applied to the invoice. + # @param applied_amount [String] The amount of the Credit Note applied to the invoice. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNote] + def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, invoice: OMIT, applied_date: OMIT, + applied_amount: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @invoice = invoice if invoice != OMIT + @applied_date = applied_date if applied_date != OMIT + @applied_amount = applied_amount if applied_amount != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "invoice": invoice, + "applied_date": applied_date, + "applied_amount": applied_amount, + "remote_was_deleted": remote_was_deleted + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of CreditNoteApplyLineForCreditNote + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNote] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["invoice"].nil? + invoice = nil + else + invoice = parsed_json["invoice"].to_json + invoice = Merge::Accounting::CreditNoteApplyLineForCreditNoteInvoice.from_json(json_object: invoice) + end + applied_date = (DateTime.parse(parsed_json["applied_date"]) unless parsed_json["applied_date"].nil?) + applied_amount = parsed_json["applied_amount"] + remote_was_deleted = parsed_json["remote_was_deleted"] + new( + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + invoice: invoice, + applied_date: applied_date, + applied_amount: applied_amount, + remote_was_deleted: remote_was_deleted, + additional_properties: struct + ) + end + + # Serialize an instance of CreditNoteApplyLineForCreditNote to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.invoice.nil? || Merge::Accounting::CreditNoteApplyLineForCreditNoteInvoice.validate_raw(obj: obj.invoice) + obj.applied_date&.is_a?(DateTime) != false || raise("Passed value for field obj.applied_date is not the expected type, validation failed.") + obj.applied_amount&.is_a?(String) != false || raise("Passed value for field obj.applied_amount is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_invoice.rb b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_invoice.rb new file mode 100644 index 00000000..37892be9 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_invoice.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "invoice" + +module Merge + module Accounting + class CreditNoteApplyLineForCreditNoteInvoice + # Deserialize a JSON object to an instance of + # CreditNoteApplyLineForCreditNoteInvoice + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNoteInvoice] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Invoice.validate_raw(obj: struct) + return Merge::Accounting::Invoice.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Invoice.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request.rb b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request.rb new file mode 100644 index 00000000..b70909e5 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request.rb @@ -0,0 +1,120 @@ +# frozen_string_literal: true + +require_relative "credit_note_apply_line_for_credit_note_request_invoice" +require "date" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The CreditNoteApplyLine Object + # ### Description + # The `CreditNoteApplyLine` is attached to the CreditNote model. + # ### Usage Example + # Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + # lines. + class CreditNoteApplyLineForCreditNoteRequest + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNoteRequestInvoice] + attr_reader :invoice + # @return [DateTime] Date that the credit note is applied to the invoice. + attr_reader :applied_date + # @return [String] The amount of the Credit Note applied to the invoice. + attr_reader :applied_amount + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param invoice [Merge::Accounting::CreditNoteApplyLineForCreditNoteRequestInvoice] + # @param applied_date [DateTime] Date that the credit note is applied to the invoice. + # @param applied_amount [String] The amount of the Credit Note applied to the invoice. + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNoteRequest] + def initialize(remote_id: OMIT, invoice: OMIT, applied_date: OMIT, applied_amount: OMIT, + integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @invoice = invoice if invoice != OMIT + @applied_date = applied_date if applied_date != OMIT + @applied_amount = applied_amount if applied_amount != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "invoice": invoice, + "applied_date": applied_date, + "applied_amount": applied_amount, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of + # CreditNoteApplyLineForCreditNoteRequest + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNoteRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + if parsed_json["invoice"].nil? + invoice = nil + else + invoice = parsed_json["invoice"].to_json + invoice = Merge::Accounting::CreditNoteApplyLineForCreditNoteRequestInvoice.from_json(json_object: invoice) + end + applied_date = (DateTime.parse(parsed_json["applied_date"]) unless parsed_json["applied_date"].nil?) + applied_amount = parsed_json["applied_amount"] + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + remote_id: remote_id, + invoice: invoice, + applied_date: applied_date, + applied_amount: applied_amount, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of CreditNoteApplyLineForCreditNoteRequest to a JSON + # object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.invoice.nil? || Merge::Accounting::CreditNoteApplyLineForCreditNoteRequestInvoice.validate_raw(obj: obj.invoice) + obj.applied_date&.is_a?(DateTime) != false || raise("Passed value for field obj.applied_date is not the expected type, validation failed.") + obj.applied_amount&.is_a?(String) != false || raise("Passed value for field obj.applied_amount is not the expected type, validation failed.") + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request_invoice.rb b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request_invoice.rb new file mode 100644 index 00000000..2e10f94e --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request_invoice.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "invoice" + +module Merge + module Accounting + class CreditNoteApplyLineForCreditNoteRequestInvoice + # Deserialize a JSON object to an instance of + # CreditNoteApplyLineForCreditNoteRequestInvoice + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteApplyLineForCreditNoteRequestInvoice] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Invoice.validate_raw(obj: struct) + return Merge::Accounting::Invoice.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Invoice.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice.rb b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice.rb new file mode 100644 index 00000000..7d30a565 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice.rb @@ -0,0 +1,132 @@ +# frozen_string_literal: true + +require "date" +require_relative "credit_note_apply_line_for_invoice_credit_note" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The CreditNoteApplyLine Object + # ### Description + # The `CreditNoteApplyLine` is attached to the CreditNote model. + # ### Usage Example + # Fetch from the `GET CreditNote` endpoint and view the invoice's applied to + # lines. + class CreditNoteApplyLineForInvoice + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Accounting::CreditNoteApplyLineForInvoiceCreditNote] + attr_reader :credit_note + # @return [DateTime] Date that the credit note is applied to the invoice. + attr_reader :applied_date + # @return [String] The amount of the Credit Note applied to the invoice. + attr_reader :applied_amount + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param credit_note [Merge::Accounting::CreditNoteApplyLineForInvoiceCreditNote] + # @param applied_date [DateTime] Date that the credit note is applied to the invoice. + # @param applied_amount [String] The amount of the Credit Note applied to the invoice. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::CreditNoteApplyLineForInvoice] + def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, credit_note: OMIT, applied_date: OMIT, + applied_amount: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @credit_note = credit_note if credit_note != OMIT + @applied_date = applied_date if applied_date != OMIT + @applied_amount = applied_amount if applied_amount != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "credit_note": credit_note, + "applied_date": applied_date, + "applied_amount": applied_amount, + "remote_was_deleted": remote_was_deleted + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of CreditNoteApplyLineForInvoice + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteApplyLineForInvoice] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["credit_note"].nil? + credit_note = nil + else + credit_note = parsed_json["credit_note"].to_json + credit_note = Merge::Accounting::CreditNoteApplyLineForInvoiceCreditNote.from_json(json_object: credit_note) + end + applied_date = (DateTime.parse(parsed_json["applied_date"]) unless parsed_json["applied_date"].nil?) + applied_amount = parsed_json["applied_amount"] + remote_was_deleted = parsed_json["remote_was_deleted"] + new( + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + credit_note: credit_note, + applied_date: applied_date, + applied_amount: applied_amount, + remote_was_deleted: remote_was_deleted, + additional_properties: struct + ) + end + + # Serialize an instance of CreditNoteApplyLineForInvoice to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.credit_note.nil? || Merge::Accounting::CreditNoteApplyLineForInvoiceCreditNote.validate_raw(obj: obj.credit_note) + obj.applied_date&.is_a?(DateTime) != false || raise("Passed value for field obj.applied_date is not the expected type, validation failed.") + obj.applied_amount&.is_a?(String) != false || raise("Passed value for field obj.applied_amount is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice_credit_note.rb b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice_credit_note.rb new file mode 100644 index 00000000..aa2f6055 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice_credit_note.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "credit_note" + +module Merge + module Accounting + class CreditNoteApplyLineForInvoiceCreditNote + # Deserialize a JSON object to an instance of + # CreditNoteApplyLineForInvoiceCreditNote + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteApplyLineForInvoiceCreditNote] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CreditNote.validate_raw(obj: struct) + return Merge::Accounting::CreditNote.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CreditNote.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb b/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb index 2f5e789a..cb1dae0b 100644 --- a/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb +++ b/lib/merge_ruby_client/accounting/types/credit_note_line_item.rb @@ -8,6 +8,11 @@ module Merge module Accounting + # # The CreditNoteLineItem Object + # ### Description + # The `CreditNoteLineItem` object is used to represent a credit note's line items. + # ### Usage Example + # Fetch from the `GET CreditNote` endpoint and view the credit note's line items. class CreditNoteLineItem # @return [String] attr_reader :id @@ -29,6 +34,8 @@ class CreditNoteLineItem attr_reader :memo # @return [String] The credit note line item's unit price. attr_reader :unit_price + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [String] The credit note line item's total. attr_reader :total_line_amount # @return [String] The credit note line item's associated tracking category. @@ -40,7 +47,9 @@ class CreditNoteLineItem # @return [Merge::Accounting::CreditNoteLineItemCompany] The company the credit note belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -60,17 +69,20 @@ class CreditNoteLineItem # @param quantity [String] The credit note line item's quantity. # @param memo [String] The credit note line item's memo. # @param unit_price [String] The credit note line item's unit price. + # @param tax_rate [String] The tax rate that applies to this line item. # @param total_line_amount [String] The credit note line item's total. # @param tracking_category [String] The credit note line item's associated tracking category. # @param tracking_categories [Array] The credit note line item's associated tracking categories. # @param account [String] The credit note line item's account. # @param company [Merge::Accounting::CreditNoteLineItemCompany] The company the credit note belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::CreditNoteLineItem] - def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, item: OMIT, name: OMIT, - description: OMIT, quantity: OMIT, memo: OMIT, unit_price: OMIT, total_line_amount: OMIT, tracking_category: OMIT, account: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, item: OMIT, name: OMIT, + description: OMIT, quantity: OMIT, memo: OMIT, unit_price: OMIT, tax_rate: OMIT, total_line_amount: OMIT, tracking_category: OMIT, tracking_categories: OMIT, account: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -81,9 +93,10 @@ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT @quantity = quantity if quantity != OMIT @memo = memo if memo != OMIT @unit_price = unit_price if unit_price != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @total_line_amount = total_line_amount if total_line_amount != OMIT @tracking_category = tracking_category if tracking_category != OMIT - @tracking_categories = tracking_categories + @tracking_categories = tracking_categories if tracking_categories != OMIT @account = account if account != OMIT @company = company if company != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @@ -99,6 +112,7 @@ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT "quantity": quantity, "memo": memo, "unit_price": unit_price, + "tax_rate": tax_rate, "total_line_amount": total_line_amount, "tracking_category": tracking_category, "tracking_categories": tracking_categories, @@ -132,6 +146,7 @@ def self.from_json(json_object:) quantity = parsed_json["quantity"] memo = parsed_json["memo"] unit_price = parsed_json["unit_price"] + tax_rate = parsed_json["tax_rate"] total_line_amount = parsed_json["total_line_amount"] tracking_category = parsed_json["tracking_category"] tracking_categories = parsed_json["tracking_categories"] @@ -154,6 +169,7 @@ def self.from_json(json_object:) quantity: quantity, memo: memo, unit_price: unit_price, + tax_rate: tax_rate, total_line_amount: total_line_amount, tracking_category: tracking_category, tracking_categories: tracking_categories, @@ -188,9 +204,10 @@ def self.validate_raw(obj:) obj.quantity&.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.") obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.unit_price&.is_a?(String) != false || raise("Passed value for field obj.unit_price is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.") obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") - obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.account&.is_a?(String) != false || raise("Passed value for field obj.account is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::CreditNoteLineItemCompany.validate_raw(obj: obj.company) obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb b/lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb new file mode 100644 index 00000000..ef913cbc --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_line_item_request.rb @@ -0,0 +1,194 @@ +# frozen_string_literal: true + +require_relative "credit_note_line_item_request_item" +require_relative "credit_note_line_item_request_company" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The CreditNoteLineItem Object + # ### Description + # The `CreditNoteLineItem` object is used to represent a credit note's line items. + # ### Usage Example + # Fetch from the `GET CreditNote` endpoint and view the credit note's line items. + class CreditNoteLineItemRequest + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [Merge::Accounting::CreditNoteLineItemRequestItem] + attr_reader :item + # @return [String] The credit note line item's name. + attr_reader :name + # @return [String] The description of the item that is owed. + attr_reader :description + # @return [String] The credit note line item's quantity. + attr_reader :quantity + # @return [String] The credit note line item's memo. + attr_reader :memo + # @return [String] The credit note line item's unit price. + attr_reader :unit_price + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate + # @return [String] The credit note line item's total. + attr_reader :total_line_amount + # @return [String] The credit note line item's associated tracking category. + attr_reader :tracking_category + # @return [Array] The credit note line item's associated tracking categories. + attr_reader :tracking_categories + # @return [String] The credit note line item's account. + attr_reader :account + # @return [Merge::Accounting::CreditNoteLineItemRequestCompany] The company the credit note belongs to. + attr_reader :company + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param item [Merge::Accounting::CreditNoteLineItemRequestItem] + # @param name [String] The credit note line item's name. + # @param description [String] The description of the item that is owed. + # @param quantity [String] The credit note line item's quantity. + # @param memo [String] The credit note line item's memo. + # @param unit_price [String] The credit note line item's unit price. + # @param tax_rate [String] The tax rate that applies to this line item. + # @param total_line_amount [String] The credit note line item's total. + # @param tracking_category [String] The credit note line item's associated tracking category. + # @param tracking_categories [Array] The credit note line item's associated tracking categories. + # @param account [String] The credit note line item's account. + # @param company [Merge::Accounting::CreditNoteLineItemRequestCompany] The company the credit note belongs to. + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::CreditNoteLineItemRequest] + def initialize(remote_id: OMIT, item: OMIT, name: OMIT, description: OMIT, quantity: OMIT, memo: OMIT, + unit_price: OMIT, tax_rate: OMIT, total_line_amount: OMIT, tracking_category: OMIT, tracking_categories: OMIT, account: OMIT, company: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @item = item if item != OMIT + @name = name if name != OMIT + @description = description if description != OMIT + @quantity = quantity if quantity != OMIT + @memo = memo if memo != OMIT + @unit_price = unit_price if unit_price != OMIT + @tax_rate = tax_rate if tax_rate != OMIT + @total_line_amount = total_line_amount if total_line_amount != OMIT + @tracking_category = tracking_category if tracking_category != OMIT + @tracking_categories = tracking_categories if tracking_categories != OMIT + @account = account if account != OMIT + @company = company if company != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "item": item, + "name": name, + "description": description, + "quantity": quantity, + "memo": memo, + "unit_price": unit_price, + "tax_rate": tax_rate, + "total_line_amount": total_line_amount, + "tracking_category": tracking_category, + "tracking_categories": tracking_categories, + "account": account, + "company": company, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of CreditNoteLineItemRequest + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteLineItemRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + if parsed_json["item"].nil? + item = nil + else + item = parsed_json["item"].to_json + item = Merge::Accounting::CreditNoteLineItemRequestItem.from_json(json_object: item) + end + name = parsed_json["name"] + description = parsed_json["description"] + quantity = parsed_json["quantity"] + memo = parsed_json["memo"] + unit_price = parsed_json["unit_price"] + tax_rate = parsed_json["tax_rate"] + total_line_amount = parsed_json["total_line_amount"] + tracking_category = parsed_json["tracking_category"] + tracking_categories = parsed_json["tracking_categories"] + account = parsed_json["account"] + if parsed_json["company"].nil? + company = nil + else + company = parsed_json["company"].to_json + company = Merge::Accounting::CreditNoteLineItemRequestCompany.from_json(json_object: company) + end + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + remote_id: remote_id, + item: item, + name: name, + description: description, + quantity: quantity, + memo: memo, + unit_price: unit_price, + tax_rate: tax_rate, + total_line_amount: total_line_amount, + tracking_category: tracking_category, + tracking_categories: tracking_categories, + account: account, + company: company, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of CreditNoteLineItemRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.item.nil? || Merge::Accounting::CreditNoteLineItemRequestItem.validate_raw(obj: obj.item) + obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") + obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.quantity&.is_a?(String) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.") + obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") + obj.unit_price&.is_a?(String) != false || raise("Passed value for field obj.unit_price is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") + obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.") + obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.account&.is_a?(String) != false || raise("Passed value for field obj.account is not the expected type, validation failed.") + obj.company.nil? || Merge::Accounting::CreditNoteLineItemRequestCompany.validate_raw(obj: obj.company) + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_company.rb b/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_company.rb new file mode 100644 index 00000000..74869445 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_company.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "company_info" + +module Merge + module Accounting + # The company the credit note belongs to. + class CreditNoteLineItemRequestCompany + # Deserialize a JSON object to an instance of CreditNoteLineItemRequestCompany + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteLineItemRequestCompany] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CompanyInfo.validate_raw(obj: struct) + return Merge::Accounting::CompanyInfo.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CompanyInfo.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_item.rb b/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_item.rb new file mode 100644 index 00000000..c867bf18 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_line_item_request_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "item" + +module Merge + module Accounting + class CreditNoteLineItemRequestItem + # Deserialize a JSON object to an instance of CreditNoteLineItemRequestItem + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteLineItemRequestItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Item.validate_raw(obj: struct) + return Merge::Accounting::Item.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Item.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request.rb b/lib/merge_ruby_client/accounting/types/credit_note_request.rb new file mode 100644 index 00000000..96c413a4 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request.rb @@ -0,0 +1,875 @@ +# frozen_string_literal: true + +require "date" +require_relative "credit_note_status_enum" +require_relative "credit_note_request_contact" +require_relative "credit_note_request_company" +require_relative "credit_note_request_line_items_item" +require_relative "credit_note_request_tracking_categories_item" +require_relative "transaction_currency_enum" +require_relative "credit_note_request_payments_item" +require_relative "credit_note_request_applied_payments_item" +require_relative "credit_note_request_accounting_period" +require_relative "credit_note_apply_line_for_credit_note_request" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The CreditNote Object + # ### Description + # A `CreditNote` is transaction issued to a customer, indicating a reduction or + # cancellation of the amount owed by the customer. It is most generally used as an + # adjustment note used to rectify errors, returns, or overpayments related to a + # sales transaction. A `CreditNote` can be applied to _Accounts Receivable_ + # Invoices to decrease the overall amount of the Invoice. + # ### Usage Example + # Fetch from the `LIST CreditNotes` endpoint and view a company's credit notes. + class CreditNoteRequest + # @return [DateTime] The credit note's transaction date. + attr_reader :transaction_date + # @return [Merge::Accounting::CreditNoteStatusEnum] The credit note's status. + # - `SUBMITTED` - SUBMITTED + # - `AUTHORIZED` - AUTHORIZED + # - `PAID` - PAID + attr_reader :status + # @return [String] The credit note's number. + attr_reader :number + # @return [Merge::Accounting::CreditNoteRequestContact] The credit note's contact. + attr_reader :contact + # @return [Merge::Accounting::CreditNoteRequestCompany] The company the credit note belongs to. + attr_reader :company + # @return [String] The credit note's exchange rate. + attr_reader :exchange_rate + # @return [Float] The credit note's total amount. + attr_reader :total_amount + # @return [Float] The amount of value remaining in the credit note that the customer can use. + attr_reader :remaining_credit + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax + # @return [Array] + attr_reader :line_items + # @return [Array] + attr_reader :tracking_categories + # @return [Merge::Accounting::TransactionCurrencyEnum] The credit note's currency. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + attr_reader :currency + # @return [Array] Array of `Payment` object IDs + attr_reader :payments + # @return [Array] A list of the Payment Applied to Lines common models related to a given Invoice, + # Credit Note, or Journal Entry. + attr_reader :applied_payments + # @return [Merge::Accounting::CreditNoteRequestAccountingPeriod] The accounting period that the CreditNote was generated in. + attr_reader :accounting_period + # @return [Array] A list of the CreditNote Applied to Lines common models related to a given + # Credit Note + attr_reader :applied_to_lines + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param transaction_date [DateTime] The credit note's transaction date. + # @param status [Merge::Accounting::CreditNoteStatusEnum] The credit note's status. + # - `SUBMITTED` - SUBMITTED + # - `AUTHORIZED` - AUTHORIZED + # - `PAID` - PAID + # @param number [String] The credit note's number. + # @param contact [Merge::Accounting::CreditNoteRequestContact] The credit note's contact. + # @param company [Merge::Accounting::CreditNoteRequestCompany] The company the credit note belongs to. + # @param exchange_rate [String] The credit note's exchange rate. + # @param total_amount [Float] The credit note's total amount. + # @param remaining_credit [Float] The amount of value remaining in the credit note that the customer can use. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + # @param line_items [Array] + # @param tracking_categories [Array] + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The credit note's currency. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + # @param payments [Array] Array of `Payment` object IDs + # @param applied_payments [Array] A list of the Payment Applied to Lines common models related to a given Invoice, + # Credit Note, or Journal Entry. + # @param accounting_period [Merge::Accounting::CreditNoteRequestAccountingPeriod] The accounting period that the CreditNote was generated in. + # @param applied_to_lines [Array] A list of the CreditNote Applied to Lines common models related to a given + # Credit Note + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::CreditNoteRequest] + def initialize(transaction_date: OMIT, status: OMIT, number: OMIT, contact: OMIT, company: OMIT, + exchange_rate: OMIT, total_amount: OMIT, remaining_credit: OMIT, inclusive_of_tax: OMIT, line_items: OMIT, tracking_categories: OMIT, currency: OMIT, payments: OMIT, applied_payments: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @transaction_date = transaction_date if transaction_date != OMIT + @status = status if status != OMIT + @number = number if number != OMIT + @contact = contact if contact != OMIT + @company = company if company != OMIT + @exchange_rate = exchange_rate if exchange_rate != OMIT + @total_amount = total_amount if total_amount != OMIT + @remaining_credit = remaining_credit if remaining_credit != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT + @line_items = line_items if line_items != OMIT + @tracking_categories = tracking_categories if tracking_categories != OMIT + @currency = currency if currency != OMIT + @payments = payments if payments != OMIT + @applied_payments = applied_payments if applied_payments != OMIT + @accounting_period = accounting_period if accounting_period != OMIT + @applied_to_lines = applied_to_lines if applied_to_lines != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "transaction_date": transaction_date, + "status": status, + "number": number, + "contact": contact, + "company": company, + "exchange_rate": exchange_rate, + "total_amount": total_amount, + "remaining_credit": remaining_credit, + "inclusive_of_tax": inclusive_of_tax, + "line_items": line_items, + "tracking_categories": tracking_categories, + "currency": currency, + "payments": payments, + "applied_payments": applied_payments, + "accounting_period": accounting_period, + "applied_to_lines": applied_to_lines, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of CreditNoteRequest + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + transaction_date = (DateTime.parse(parsed_json["transaction_date"]) unless parsed_json["transaction_date"].nil?) + status = parsed_json["status"] + number = parsed_json["number"] + if parsed_json["contact"].nil? + contact = nil + else + contact = parsed_json["contact"].to_json + contact = Merge::Accounting::CreditNoteRequestContact.from_json(json_object: contact) + end + if parsed_json["company"].nil? + company = nil + else + company = parsed_json["company"].to_json + company = Merge::Accounting::CreditNoteRequestCompany.from_json(json_object: company) + end + exchange_rate = parsed_json["exchange_rate"] + total_amount = parsed_json["total_amount"] + remaining_credit = parsed_json["remaining_credit"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] + line_items = parsed_json["line_items"]&.map do |item| + item = item.to_json + Merge::Accounting::CreditNoteRequestLineItemsItem.from_json(json_object: item) + end + tracking_categories = parsed_json["tracking_categories"]&.map do |item| + item = item.to_json + Merge::Accounting::CreditNoteRequestTrackingCategoriesItem.from_json(json_object: item) + end + currency = parsed_json["currency"] + payments = parsed_json["payments"]&.map do |item| + item = item.to_json + Merge::Accounting::CreditNoteRequestPaymentsItem.from_json(json_object: item) + end + applied_payments = parsed_json["applied_payments"]&.map do |item| + item = item.to_json + Merge::Accounting::CreditNoteRequestAppliedPaymentsItem.from_json(json_object: item) + end + if parsed_json["accounting_period"].nil? + accounting_period = nil + else + accounting_period = parsed_json["accounting_period"].to_json + accounting_period = Merge::Accounting::CreditNoteRequestAccountingPeriod.from_json(json_object: accounting_period) + end + applied_to_lines = parsed_json["applied_to_lines"]&.map do |item| + item = item.to_json + Merge::Accounting::CreditNoteApplyLineForCreditNoteRequest.from_json(json_object: item) + end + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + transaction_date: transaction_date, + status: status, + number: number, + contact: contact, + company: company, + exchange_rate: exchange_rate, + total_amount: total_amount, + remaining_credit: remaining_credit, + inclusive_of_tax: inclusive_of_tax, + line_items: line_items, + tracking_categories: tracking_categories, + currency: currency, + payments: payments, + applied_payments: applied_payments, + accounting_period: accounting_period, + applied_to_lines: applied_to_lines, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of CreditNoteRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") + obj.status&.is_a?(Merge::Accounting::CreditNoteStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") + obj.number&.is_a?(String) != false || raise("Passed value for field obj.number is not the expected type, validation failed.") + obj.contact.nil? || Merge::Accounting::CreditNoteRequestContact.validate_raw(obj: obj.contact) + obj.company.nil? || Merge::Accounting::CreditNoteRequestCompany.validate_raw(obj: obj.company) + obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") + obj.remaining_credit&.is_a?(Float) != false || raise("Passed value for field obj.remaining_credit is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") + obj.line_items&.is_a?(Array) != false || raise("Passed value for field obj.line_items is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.") + obj.applied_payments&.is_a?(Array) != false || raise("Passed value for field obj.applied_payments is not the expected type, validation failed.") + obj.accounting_period.nil? || Merge::Accounting::CreditNoteRequestAccountingPeriod.validate_raw(obj: obj.accounting_period) + obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_accounting_period.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_accounting_period.rb new file mode 100644 index 00000000..9bf2d78c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_accounting_period.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "accounting_period" + +module Merge + module Accounting + # The accounting period that the CreditNote was generated in. + class CreditNoteRequestAccountingPeriod + # Deserialize a JSON object to an instance of CreditNoteRequestAccountingPeriod + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestAccountingPeriod] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::AccountingPeriod.validate_raw(obj: struct) + return Merge::Accounting::AccountingPeriod.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::AccountingPeriod.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_applied_payments_item.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_applied_payments_item.rb new file mode 100644 index 00000000..032eb42a --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_applied_payments_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "payment_line_item" + +module Merge + module Accounting + class CreditNoteRequestAppliedPaymentsItem + # Deserialize a JSON object to an instance of CreditNoteRequestAppliedPaymentsItem + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestAppliedPaymentsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::PaymentLineItem.validate_raw(obj: struct) + return Merge::Accounting::PaymentLineItem.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::PaymentLineItem.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_company.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_company.rb new file mode 100644 index 00000000..d6203e63 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_company.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "company_info" + +module Merge + module Accounting + # The company the credit note belongs to. + class CreditNoteRequestCompany + # Deserialize a JSON object to an instance of CreditNoteRequestCompany + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestCompany] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CompanyInfo.validate_raw(obj: struct) + return Merge::Accounting::CompanyInfo.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CompanyInfo.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_contact.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_contact.rb new file mode 100644 index 00000000..14fdc1fa --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_contact.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "contact" + +module Merge + module Accounting + # The credit note's contact. + class CreditNoteRequestContact + # Deserialize a JSON object to an instance of CreditNoteRequestContact + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestContact] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Contact.validate_raw(obj: struct) + return Merge::Accounting::Contact.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Contact.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_line_items_item.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_line_items_item.rb new file mode 100644 index 00000000..14c60f0a --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_line_items_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "credit_note_line_item_request" + +module Merge + module Accounting + class CreditNoteRequestLineItemsItem + # Deserialize a JSON object to an instance of CreditNoteRequestLineItemsItem + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestLineItemsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CreditNoteLineItemRequest.validate_raw(obj: struct) + return Merge::Accounting::CreditNoteLineItemRequest.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CreditNoteLineItemRequest.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_payments_item.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_payments_item.rb new file mode 100644 index 00000000..7717fcac --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_payments_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "payment" + +module Merge + module Accounting + class CreditNoteRequestPaymentsItem + # Deserialize a JSON object to an instance of CreditNoteRequestPaymentsItem + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestPaymentsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Payment.validate_raw(obj: struct) + return Merge::Accounting::Payment.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Payment.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_request_tracking_categories_item.rb b/lib/merge_ruby_client/accounting/types/credit_note_request_tracking_categories_item.rb new file mode 100644 index 00000000..8c868aba --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_request_tracking_categories_item.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "tracking_category" + +module Merge + module Accounting + class CreditNoteRequestTrackingCategoriesItem + # Deserialize a JSON object to an instance of + # CreditNoteRequestTrackingCategoriesItem + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteRequestTrackingCategoriesItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::TrackingCategory.validate_raw(obj: struct) + return Merge::Accounting::TrackingCategory.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::TrackingCategory.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_note_response.rb b/lib/merge_ruby_client/accounting/types/credit_note_response.rb new file mode 100644 index 00000000..26ca1576 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_note_response.rb @@ -0,0 +1,101 @@ +# frozen_string_literal: true + +require_relative "credit_note" +require_relative "warning_validation_problem" +require_relative "error_validation_problem" +require_relative "debug_mode_log" +require "ostruct" +require "json" + +module Merge + module Accounting + class CreditNoteResponse + # @return [Merge::Accounting::CreditNote] + attr_reader :model + # @return [Array] + attr_reader :warnings + # @return [Array] + attr_reader :errors + # @return [Array] + attr_reader :logs + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param model [Merge::Accounting::CreditNote] + # @param warnings [Array] + # @param errors [Array] + # @param logs [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::CreditNoteResponse] + def initialize(model:, warnings:, errors:, logs: OMIT, additional_properties: nil) + @model = model + @warnings = warnings + @errors = errors + @logs = logs if logs != OMIT + @additional_properties = additional_properties + @_field_set = { "model": model, "warnings": warnings, "errors": errors, "logs": logs }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of CreditNoteResponse + # + # @param json_object [String] + # @return [Merge::Accounting::CreditNoteResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["model"].nil? + model = nil + else + model = parsed_json["model"].to_json + model = Merge::Accounting::CreditNote.from_json(json_object: model) + end + warnings = parsed_json["warnings"]&.map do |item| + item = item.to_json + Merge::Accounting::WarningValidationProblem.from_json(json_object: item) + end + errors = parsed_json["errors"]&.map do |item| + item = item.to_json + Merge::Accounting::ErrorValidationProblem.from_json(json_object: item) + end + logs = parsed_json["logs"]&.map do |item| + item = item.to_json + Merge::Accounting::DebugModeLog.from_json(json_object: item) + end + new( + model: model, + warnings: warnings, + errors: errors, + logs: logs, + additional_properties: struct + ) + end + + # Serialize an instance of CreditNoteResponse to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + Merge::Accounting::CreditNote.validate_raw(obj: obj.model) + obj.warnings.is_a?(Array) != false || raise("Passed value for field obj.warnings is not the expected type, validation failed.") + obj.errors.is_a?(Array) != false || raise("Passed value for field obj.errors is not the expected type, validation failed.") + obj.logs&.is_a?(Array) != false || raise("Passed value for field obj.logs is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/credit_or_debit_enum.rb b/lib/merge_ruby_client/accounting/types/credit_or_debit_enum.rb new file mode 100644 index 00000000..a2394949 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/credit_or_debit_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `CREDIT` - CREDIT + # - `DEBIT` - DEBIT + class CreditOrDebitEnum + CREDIT = "CREDIT" + DEBIT = "DEBIT" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/employee.rb b/lib/merge_ruby_client/accounting/types/employee.rb new file mode 100644 index 00000000..f5db486c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/employee.rb @@ -0,0 +1,199 @@ +# frozen_string_literal: true + +require "date" +require_relative "employee_company" +require_relative "status_895_enum" +require_relative "remote_data" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The Employee Object + # ### Description + # An `Employee` is an individual who works for the company of the linked account. + # The `Employee` model contains both contractors and full time employees. + # - An `Employee` is a contractor if `is_contractor` property is `True` + # - An `Employee` is a full time employee if `is_contractor` property is `False` + # ### Usage Example + # Fetch from the `LIST Employees` endpoint and view a company's employees. + class Employee + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [String] The employee's first name. + attr_reader :first_name + # @return [String] The employee's last name. + attr_reader :last_name + # @return [Boolean] `True` if the employee is a contractor, `False` if not. + attr_reader :is_contractor + # @return [String] The employee's internal identification number. + attr_reader :employee_number + # @return [String] The employee's email address. + attr_reader :email_address + # @return [Merge::Accounting::EmployeeCompany] The subsidiary that the employee belongs to. + attr_reader :company + # @return [Merge::Accounting::Status895Enum] The employee's status in the accounting system. + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + attr_reader :status + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [Hash{String => Object}] + attr_reader :field_mappings + # @return [Array] + attr_reader :remote_data + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param first_name [String] The employee's first name. + # @param last_name [String] The employee's last name. + # @param is_contractor [Boolean] `True` if the employee is a contractor, `False` if not. + # @param employee_number [String] The employee's internal identification number. + # @param email_address [String] The employee's email address. + # @param company [Merge::Accounting::EmployeeCompany] The subsidiary that the employee belongs to. + # @param status [Merge::Accounting::Status895Enum] The employee's status in the accounting system. + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param field_mappings [Hash{String => Object}] + # @param remote_data [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::Employee] + def initialize(status:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, first_name: OMIT, last_name: OMIT, + is_contractor: OMIT, employee_number: OMIT, email_address: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @first_name = first_name if first_name != OMIT + @last_name = last_name if last_name != OMIT + @is_contractor = is_contractor if is_contractor != OMIT + @employee_number = employee_number if employee_number != OMIT + @email_address = email_address if email_address != OMIT + @company = company if company != OMIT + @status = status + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @field_mappings = field_mappings if field_mappings != OMIT + @remote_data = remote_data if remote_data != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "first_name": first_name, + "last_name": last_name, + "is_contractor": is_contractor, + "employee_number": employee_number, + "email_address": email_address, + "company": company, + "status": status, + "remote_was_deleted": remote_was_deleted, + "field_mappings": field_mappings, + "remote_data": remote_data + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of Employee + # + # @param json_object [String] + # @return [Merge::Accounting::Employee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + first_name = parsed_json["first_name"] + last_name = parsed_json["last_name"] + is_contractor = parsed_json["is_contractor"] + employee_number = parsed_json["employee_number"] + email_address = parsed_json["email_address"] + if parsed_json["company"].nil? + company = nil + else + company = parsed_json["company"].to_json + company = Merge::Accounting::EmployeeCompany.from_json(json_object: company) + end + status = parsed_json["status"] + remote_was_deleted = parsed_json["remote_was_deleted"] + field_mappings = parsed_json["field_mappings"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteData.from_json(json_object: item) + end + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + first_name: first_name, + last_name: last_name, + is_contractor: is_contractor, + employee_number: employee_number, + email_address: email_address, + company: company, + status: status, + remote_was_deleted: remote_was_deleted, + field_mappings: field_mappings, + remote_data: remote_data, + additional_properties: struct + ) + end + + # Serialize an instance of Employee to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.first_name&.is_a?(String) != false || raise("Passed value for field obj.first_name is not the expected type, validation failed.") + obj.last_name&.is_a?(String) != false || raise("Passed value for field obj.last_name is not the expected type, validation failed.") + obj.is_contractor&.is_a?(Boolean) != false || raise("Passed value for field obj.is_contractor is not the expected type, validation failed.") + obj.employee_number&.is_a?(String) != false || raise("Passed value for field obj.employee_number is not the expected type, validation failed.") + obj.email_address&.is_a?(String) != false || raise("Passed value for field obj.email_address is not the expected type, validation failed.") + obj.company.nil? || Merge::Accounting::EmployeeCompany.validate_raw(obj: obj.company) + obj.status.is_a?(Merge::Accounting::Status895Enum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") + obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/employee_company.rb b/lib/merge_ruby_client/accounting/types/employee_company.rb new file mode 100644 index 00000000..ac62532d --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/employee_company.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" + +module Merge + module Accounting + # The subsidiary that the employee belongs to. + class EmployeeCompany + # Deserialize a JSON object to an instance of EmployeeCompany + # + # @param json_object [String] + # @return [Merge::Accounting::EmployeeCompany] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/event_type_enum.rb b/lib/merge_ruby_client/accounting/types/event_type_enum.rb index c1d045bd..a5b481d3 100644 --- a/lib/merge_ruby_client/accounting/types/event_type_enum.rb +++ b/lib/merge_ruby_client/accounting/types/event_type_enum.rb @@ -40,12 +40,19 @@ module Accounting # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK # - `ENABLED_MERGE_WEBHOOK` - ENABLED_MERGE_WEBHOOK # - `DISABLED_MERGE_WEBHOOK` - DISABLED_MERGE_WEBHOOK # - `MERGE_WEBHOOK_TARGET_CHANGED` - MERGE_WEBHOOK_TARGET_CHANGED + # - `END_USER_CREDENTIALS_ACCESSED` - END_USER_CREDENTIALS_ACCESSED class EventTypeEnum CREATED_REMOTE_PRODUCTION_API_KEY = "CREATED_REMOTE_PRODUCTION_API_KEY" DELETED_REMOTE_PRODUCTION_API_KEY = "DELETED_REMOTE_PRODUCTION_API_KEY" @@ -78,12 +85,16 @@ class EventTypeEnum CHANGED_LINKED_ACCOUNT_FIELD_MAPPING = "CHANGED_LINKED_ACCOUNT_FIELD_MAPPING" DELETED_INTEGRATION_WIDE_FIELD_MAPPING = "DELETED_INTEGRATION_WIDE_FIELD_MAPPING" DELETED_LINKED_ACCOUNT_FIELD_MAPPING = "DELETED_LINKED_ACCOUNT_FIELD_MAPPING" + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC" MUTED_ISSUE = "MUTED_ISSUE" GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK" ENABLED_MERGE_WEBHOOK = "ENABLED_MERGE_WEBHOOK" DISABLED_MERGE_WEBHOOK = "DISABLED_MERGE_WEBHOOK" MERGE_WEBHOOK_TARGET_CHANGED = "MERGE_WEBHOOK_TARGET_CHANGED" + END_USER_CREDENTIALS_ACCESSED = "END_USER_CREDENTIALS_ACCESSED" end end end diff --git a/lib/merge_ruby_client/accounting/types/expense.rb b/lib/merge_ruby_client/accounting/types/expense.rb index 57f2254e..e3a48722 100644 --- a/lib/merge_ruby_client/accounting/types/expense.rb +++ b/lib/merge_ruby_client/accounting/types/expense.rb @@ -3,12 +3,14 @@ require "date" require_relative "expense_account" require_relative "expense_contact" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "expense_company" +require_relative "expense_employee" require_relative "expense_line" require_relative "expense_tracking_categories_item" require_relative "expense_accounting_period" require_relative "remote_data" +require_relative "remote_field" require "ostruct" require "json" @@ -49,7 +51,7 @@ class Expense attr_reader :sub_total # @return [Float] The expense's total tax amount. attr_reader :total_tax_amount - # @return [Merge::Accounting::CurrencyEnum] The expense's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The expense's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -359,8 +361,13 @@ class Expense attr_reader :currency # @return [String] The expense's exchange rate. attr_reader :exchange_rate + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Merge::Accounting::ExpenseCompany] The company the expense belongs to. attr_reader :company + # @return [Merge::Accounting::ExpenseEmployee] The employee this overall transaction relates to. + attr_reader :employee # @return [String] The expense's private note. attr_reader :memo # @return [Array] @@ -368,7 +375,9 @@ class Expense # @return [Array] attr_reader :tracking_categories # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Merge::Accounting::ExpenseAccountingPeriod] The accounting period that the Expense was generated in. attr_reader :accounting_period @@ -376,6 +385,8 @@ class Expense attr_reader :field_mappings # @return [Array] attr_reader :remote_data + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -395,7 +406,7 @@ class Expense # @param total_amount [Float] The expense's total amount. # @param sub_total [Float] The expense's total amount before tax. # @param total_tax_amount [Float] The expense's total tax amount. - # @param currency [Merge::Accounting::CurrencyEnum] The expense's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The expense's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -703,19 +714,25 @@ class Expense # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) # @param exchange_rate [String] The expense's exchange rate. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param company [Merge::Accounting::ExpenseCompany] The company the expense belongs to. + # @param employee [Merge::Accounting::ExpenseEmployee] The employee this overall transaction relates to. # @param memo [String] The expense's private note. # @param lines [Array] # @param tracking_categories [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param accounting_period [Merge::Accounting::ExpenseAccountingPeriod] The accounting period that the Expense was generated in. # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Expense] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, transaction_date: OMIT, - remote_created_at: OMIT, account: OMIT, contact: OMIT, total_amount: OMIT, sub_total: OMIT, total_tax_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, memo: OMIT, lines: OMIT, tracking_categories: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + remote_created_at: OMIT, account: OMIT, contact: OMIT, total_amount: OMIT, sub_total: OMIT, total_tax_amount: OMIT, currency: OMIT, exchange_rate: OMIT, inclusive_of_tax: OMIT, company: OMIT, employee: OMIT, memo: OMIT, lines: OMIT, tracking_categories: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -729,7 +746,9 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @total_tax_amount = total_tax_amount if total_tax_amount != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @memo = memo if memo != OMIT @lines = lines if lines != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @@ -737,6 +756,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @accounting_period = accounting_period if accounting_period != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -752,14 +772,17 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "total_tax_amount": total_tax_amount, "currency": currency, "exchange_rate": exchange_rate, + "inclusive_of_tax": inclusive_of_tax, "company": company, + "employee": employee, "memo": memo, "lines": lines, "tracking_categories": tracking_categories, "remote_was_deleted": remote_was_deleted, "accounting_period": accounting_period, "field_mappings": field_mappings, - "remote_data": remote_data + "remote_data": remote_data, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -797,12 +820,19 @@ def self.from_json(json_object:) total_tax_amount = parsed_json["total_tax_amount"] currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] if parsed_json["company"].nil? company = nil else company = parsed_json["company"].to_json company = Merge::Accounting::ExpenseCompany.from_json(json_object: company) end + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::ExpenseEmployee.from_json(json_object: employee) + end memo = parsed_json["memo"] lines = parsed_json["lines"]&.map do |item| item = item.to_json @@ -824,6 +854,10 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::RemoteData.from_json(json_object: item) end + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -838,7 +872,9 @@ def self.from_json(json_object:) total_tax_amount: total_tax_amount, currency: currency, exchange_rate: exchange_rate, + inclusive_of_tax: inclusive_of_tax, company: company, + employee: employee, memo: memo, lines: lines, tracking_categories: tracking_categories, @@ -846,6 +882,7 @@ def self.from_json(json_object:) accounting_period: accounting_period, field_mappings: field_mappings, remote_data: remote_data, + remote_fields: remote_fields, additional_properties: struct ) end @@ -875,9 +912,11 @@ def self.validate_raw(obj:) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") obj.sub_total&.is_a?(Float) != false || raise("Passed value for field obj.sub_total is not the expected type, validation failed.") obj.total_tax_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_tax_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::ExpenseCompany.validate_raw(obj: obj.company) + obj.employee.nil? || Merge::Accounting::ExpenseEmployee.validate_raw(obj: obj.employee) obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.lines&.is_a?(Array) != false || raise("Passed value for field obj.lines is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") @@ -885,6 +924,7 @@ def self.validate_raw(obj:) obj.accounting_period.nil? || Merge::Accounting::ExpenseAccountingPeriod.validate_raw(obj: obj.accounting_period) obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/expense_employee.rb b/lib/merge_ruby_client/accounting/types/expense_employee.rb new file mode 100644 index 00000000..29f84c7e --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/expense_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class ExpenseEmployee + # Deserialize a JSON object to an instance of ExpenseEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::ExpenseEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/expense_line.rb b/lib/merge_ruby_client/accounting/types/expense_line.rb index 69f35a78..e742dcf5 100644 --- a/lib/merge_ruby_client/accounting/types/expense_line.rb +++ b/lib/merge_ruby_client/accounting/types/expense_line.rb @@ -4,7 +4,8 @@ require_relative "expense_line_item" require_relative "expense_line_tracking_category" require_relative "expense_line_tracking_categories_item" -require_relative "currency_enum" +require_relative "expense_line_employee" +require_relative "transaction_currency_enum" require_relative "expense_line_account" require_relative "expense_line_contact" require "ostruct" @@ -32,11 +33,13 @@ class ExpenseLine attr_reader :net_amount # @return [Merge::Accounting::ExpenseLineTrackingCategory] attr_reader :tracking_category - # @return [Array] + # @return [Array] The expense line item's associated tracking categories. attr_reader :tracking_categories - # @return [String] The company the line belongs to. + # @return [String] The company the expense belongs to. attr_reader :company - # @return [Merge::Accounting::CurrencyEnum] The expense line item's currency. + # @return [Merge::Accounting::ExpenseLineEmployee] The employee this overall transaction relates to. + attr_reader :employee + # @return [Merge::Accounting::TransactionCurrencyEnum] The expense line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -352,8 +355,12 @@ class ExpenseLine attr_reader :description # @return [String] The expense line item's exchange rate. attr_reader :exchange_rate + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -370,9 +377,10 @@ class ExpenseLine # @param item [Merge::Accounting::ExpenseLineItem] The line's item. # @param net_amount [Float] The line's net amount. # @param tracking_category [Merge::Accounting::ExpenseLineTrackingCategory] - # @param tracking_categories [Array] - # @param company [String] The company the line belongs to. - # @param currency [Merge::Accounting::CurrencyEnum] The expense line item's currency. + # @param tracking_categories [Array] The expense line item's associated tracking categories. + # @param company [String] The company the expense belongs to. + # @param employee [Merge::Accounting::ExpenseLineEmployee] The employee this overall transaction relates to. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The expense line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -683,12 +691,15 @@ class ExpenseLine # @param contact [Merge::Accounting::ExpenseLineContact] The expense's contact. # @param description [String] The description of the item that was purchased by the company. # @param exchange_rate [String] The expense line item's exchange rate. + # @param tax_rate [String] The tax rate that applies to this line item. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::ExpenseLine] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, item: OMIT, net_amount: OMIT, - tracking_category: OMIT, tracking_categories: OMIT, company: OMIT, currency: OMIT, account: OMIT, contact: OMIT, description: OMIT, exchange_rate: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + tracking_category: OMIT, tracking_categories: OMIT, company: OMIT, employee: OMIT, currency: OMIT, account: OMIT, contact: OMIT, description: OMIT, exchange_rate: OMIT, tax_rate: OMIT, remote_was_deleted: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -698,11 +709,13 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, i @tracking_category = tracking_category if tracking_category != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @currency = currency if currency != OMIT @account = account if account != OMIT @contact = contact if contact != OMIT @description = description if description != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @additional_properties = additional_properties @_field_set = { @@ -715,11 +728,13 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, i "tracking_category": tracking_category, "tracking_categories": tracking_categories, "company": company, + "employee": employee, "currency": currency, "account": account, "contact": contact, "description": description, "exchange_rate": exchange_rate, + "tax_rate": tax_rate, "remote_was_deleted": remote_was_deleted }.reject do |_k, v| v == OMIT @@ -755,6 +770,12 @@ def self.from_json(json_object:) Merge::Accounting::ExpenseLineTrackingCategoriesItem.from_json(json_object: item) end company = parsed_json["company"] + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::ExpenseLineEmployee.from_json(json_object: employee) + end currency = parsed_json["currency"] if parsed_json["account"].nil? account = nil @@ -770,6 +791,7 @@ def self.from_json(json_object:) end description = parsed_json["description"] exchange_rate = parsed_json["exchange_rate"] + tax_rate = parsed_json["tax_rate"] remote_was_deleted = parsed_json["remote_was_deleted"] new( id: id, @@ -781,11 +803,13 @@ def self.from_json(json_object:) tracking_category: tracking_category, tracking_categories: tracking_categories, company: company, + employee: employee, currency: currency, account: account, contact: contact, description: description, exchange_rate: exchange_rate, + tax_rate: tax_rate, remote_was_deleted: remote_was_deleted, additional_properties: struct ) @@ -814,11 +838,13 @@ def self.validate_raw(obj:) obj.tracking_category.nil? || Merge::Accounting::ExpenseLineTrackingCategory.validate_raw(obj: obj.tracking_category) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.employee.nil? || Merge::Accounting::ExpenseLineEmployee.validate_raw(obj: obj.employee) + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.account.nil? || Merge::Accounting::ExpenseLineAccount.validate_raw(obj: obj.account) obj.contact.nil? || Merge::Accounting::ExpenseLineContact.validate_raw(obj: obj.contact) obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") end end diff --git a/lib/merge_ruby_client/accounting/types/expense_line_employee.rb b/lib/merge_ruby_client/accounting/types/expense_line_employee.rb new file mode 100644 index 00000000..1faadbef --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/expense_line_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class ExpenseLineEmployee + # Deserialize a JSON object to an instance of ExpenseLineEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::ExpenseLineEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/expense_line_request.rb b/lib/merge_ruby_client/accounting/types/expense_line_request.rb index 81314af3..96d31a7b 100644 --- a/lib/merge_ruby_client/accounting/types/expense_line_request.rb +++ b/lib/merge_ruby_client/accounting/types/expense_line_request.rb @@ -3,9 +3,11 @@ require_relative "expense_line_request_item" require_relative "expense_line_request_tracking_category" require_relative "expense_line_request_tracking_categories_item" -require_relative "currency_enum" +require_relative "expense_line_request_employee" +require_relative "transaction_currency_enum" require_relative "expense_line_request_account" require_relative "expense_line_request_contact" +require_relative "remote_field_request" require "ostruct" require "json" @@ -25,11 +27,13 @@ class ExpenseLineRequest attr_reader :net_amount # @return [Merge::Accounting::ExpenseLineRequestTrackingCategory] attr_reader :tracking_category - # @return [Array] + # @return [Array] The expense line item's associated tracking categories. attr_reader :tracking_categories - # @return [String] The company the line belongs to. + # @return [String] The company the expense belongs to. attr_reader :company - # @return [Merge::Accounting::CurrencyEnum] The expense line item's currency. + # @return [Merge::Accounting::ExpenseLineRequestEmployee] The employee this overall transaction relates to. + attr_reader :employee + # @return [Merge::Accounting::TransactionCurrencyEnum] The expense line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -345,10 +349,14 @@ class ExpenseLineRequest attr_reader :description # @return [String] The expense line item's exchange rate. attr_reader :exchange_rate + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [Hash{String => Object}] attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -361,9 +369,10 @@ class ExpenseLineRequest # @param item [Merge::Accounting::ExpenseLineRequestItem] The line's item. # @param net_amount [Float] The line's net amount. # @param tracking_category [Merge::Accounting::ExpenseLineRequestTrackingCategory] - # @param tracking_categories [Array] - # @param company [String] The company the line belongs to. - # @param currency [Merge::Accounting::CurrencyEnum] The expense line item's currency. + # @param tracking_categories [Array] The expense line item's associated tracking categories. + # @param company [String] The company the expense belongs to. + # @param employee [Merge::Accounting::ExpenseLineRequestEmployee] The employee this overall transaction relates to. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The expense line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -674,25 +683,30 @@ class ExpenseLineRequest # @param contact [Merge::Accounting::ExpenseLineRequestContact] The expense's contact. # @param description [String] The description of the item that was purchased by the company. # @param exchange_rate [String] The expense line item's exchange rate. + # @param tax_rate [String] The tax rate that applies to this line item. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::ExpenseLineRequest] def initialize(remote_id: OMIT, item: OMIT, net_amount: OMIT, tracking_category: OMIT, tracking_categories: OMIT, - company: OMIT, currency: OMIT, account: OMIT, contact: OMIT, description: OMIT, exchange_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + company: OMIT, employee: OMIT, currency: OMIT, account: OMIT, contact: OMIT, description: OMIT, exchange_rate: OMIT, tax_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @remote_id = remote_id if remote_id != OMIT @item = item if item != OMIT @net_amount = net_amount if net_amount != OMIT @tracking_category = tracking_category if tracking_category != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @currency = currency if currency != OMIT @account = account if account != OMIT @contact = contact if contact != OMIT @description = description if description != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "remote_id": remote_id, @@ -701,13 +715,16 @@ def initialize(remote_id: OMIT, item: OMIT, net_amount: OMIT, tracking_category: "tracking_category": tracking_category, "tracking_categories": tracking_categories, "company": company, + "employee": employee, "currency": currency, "account": account, "contact": contact, "description": description, "exchange_rate": exchange_rate, + "tax_rate": tax_rate, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -739,6 +756,12 @@ def self.from_json(json_object:) Merge::Accounting::ExpenseLineRequestTrackingCategoriesItem.from_json(json_object: item) end company = parsed_json["company"] + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::ExpenseLineRequestEmployee.from_json(json_object: employee) + end currency = parsed_json["currency"] if parsed_json["account"].nil? account = nil @@ -754,8 +777,13 @@ def self.from_json(json_object:) end description = parsed_json["description"] exchange_rate = parsed_json["exchange_rate"] + tax_rate = parsed_json["tax_rate"] integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( remote_id: remote_id, item: item, @@ -763,13 +791,16 @@ def self.from_json(json_object:) tracking_category: tracking_category, tracking_categories: tracking_categories, company: company, + employee: employee, currency: currency, account: account, contact: contact, description: description, exchange_rate: exchange_rate, + tax_rate: tax_rate, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -794,13 +825,16 @@ def self.validate_raw(obj:) obj.tracking_category.nil? || Merge::Accounting::ExpenseLineRequestTrackingCategory.validate_raw(obj: obj.tracking_category) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.employee.nil? || Merge::Accounting::ExpenseLineRequestEmployee.validate_raw(obj: obj.employee) + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.account.nil? || Merge::Accounting::ExpenseLineRequestAccount.validate_raw(obj: obj.account) obj.contact.nil? || Merge::Accounting::ExpenseLineRequestContact.validate_raw(obj: obj.contact) obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/expense_line_request_employee.rb b/lib/merge_ruby_client/accounting/types/expense_line_request_employee.rb new file mode 100644 index 00000000..b5f5dfdb --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/expense_line_request_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class ExpenseLineRequestEmployee + # Deserialize a JSON object to an instance of ExpenseLineRequestEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::ExpenseLineRequestEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/expense_request.rb b/lib/merge_ruby_client/accounting/types/expense_request.rb index 1095c348..65e7328c 100644 --- a/lib/merge_ruby_client/accounting/types/expense_request.rb +++ b/lib/merge_ruby_client/accounting/types/expense_request.rb @@ -3,11 +3,13 @@ require "date" require_relative "expense_request_account" require_relative "expense_request_contact" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "expense_request_company" +require_relative "expense_request_employee" require_relative "expense_line_request" require_relative "expense_request_tracking_categories_item" require_relative "expense_request_accounting_period" +require_relative "remote_field_request" require "ostruct" require "json" @@ -38,7 +40,7 @@ class ExpenseRequest attr_reader :sub_total # @return [Float] The expense's total tax amount. attr_reader :total_tax_amount - # @return [Merge::Accounting::CurrencyEnum] The expense's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The expense's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -348,8 +350,13 @@ class ExpenseRequest attr_reader :currency # @return [String] The expense's exchange rate. attr_reader :exchange_rate + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Merge::Accounting::ExpenseRequestCompany] The company the expense belongs to. attr_reader :company + # @return [Merge::Accounting::ExpenseRequestEmployee] The employee this overall transaction relates to. + attr_reader :employee # @return [String] The expense's private note. attr_reader :memo # @return [Array] @@ -362,6 +369,8 @@ class ExpenseRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -376,7 +385,7 @@ class ExpenseRequest # @param total_amount [Float] The expense's total amount. # @param sub_total [Float] The expense's total amount before tax. # @param total_tax_amount [Float] The expense's total tax amount. - # @param currency [Merge::Accounting::CurrencyEnum] The expense's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The expense's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -684,17 +693,21 @@ class ExpenseRequest # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) # @param exchange_rate [String] The expense's exchange rate. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param company [Merge::Accounting::ExpenseRequestCompany] The company the expense belongs to. + # @param employee [Merge::Accounting::ExpenseRequestEmployee] The employee this overall transaction relates to. # @param memo [String] The expense's private note. # @param lines [Array] # @param tracking_categories [Array] # @param accounting_period [Merge::Accounting::ExpenseRequestAccountingPeriod] The accounting period that the Expense was generated in. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::ExpenseRequest] def initialize(transaction_date: OMIT, account: OMIT, contact: OMIT, total_amount: OMIT, sub_total: OMIT, - total_tax_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, memo: OMIT, lines: OMIT, tracking_categories: OMIT, accounting_period: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + total_tax_amount: OMIT, currency: OMIT, exchange_rate: OMIT, inclusive_of_tax: OMIT, company: OMIT, employee: OMIT, memo: OMIT, lines: OMIT, tracking_categories: OMIT, accounting_period: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @transaction_date = transaction_date if transaction_date != OMIT @account = account if account != OMIT @contact = contact if contact != OMIT @@ -703,13 +716,16 @@ def initialize(transaction_date: OMIT, account: OMIT, contact: OMIT, total_amoun @total_tax_amount = total_tax_amount if total_tax_amount != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @memo = memo if memo != OMIT @lines = lines if lines != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @accounting_period = accounting_period if accounting_period != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "transaction_date": transaction_date, @@ -720,13 +736,16 @@ def initialize(transaction_date: OMIT, account: OMIT, contact: OMIT, total_amoun "total_tax_amount": total_tax_amount, "currency": currency, "exchange_rate": exchange_rate, + "inclusive_of_tax": inclusive_of_tax, "company": company, + "employee": employee, "memo": memo, "lines": lines, "tracking_categories": tracking_categories, "accounting_period": accounting_period, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -757,12 +776,19 @@ def self.from_json(json_object:) total_tax_amount = parsed_json["total_tax_amount"] currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] if parsed_json["company"].nil? company = nil else company = parsed_json["company"].to_json company = Merge::Accounting::ExpenseRequestCompany.from_json(json_object: company) end + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::ExpenseRequestEmployee.from_json(json_object: employee) + end memo = parsed_json["memo"] lines = parsed_json["lines"]&.map do |item| item = item.to_json @@ -780,6 +806,10 @@ def self.from_json(json_object:) end integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( transaction_date: transaction_date, account: account, @@ -789,13 +819,16 @@ def self.from_json(json_object:) total_tax_amount: total_tax_amount, currency: currency, exchange_rate: exchange_rate, + inclusive_of_tax: inclusive_of_tax, company: company, + employee: employee, memo: memo, lines: lines, tracking_categories: tracking_categories, accounting_period: accounting_period, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -820,15 +853,18 @@ def self.validate_raw(obj:) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") obj.sub_total&.is_a?(Float) != false || raise("Passed value for field obj.sub_total is not the expected type, validation failed.") obj.total_tax_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_tax_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::ExpenseRequestCompany.validate_raw(obj: obj.company) + obj.employee.nil? || Merge::Accounting::ExpenseRequestEmployee.validate_raw(obj: obj.employee) obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.lines&.is_a?(Array) != false || raise("Passed value for field obj.lines is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.accounting_period.nil? || Merge::Accounting::ExpenseRequestAccountingPeriod.validate_raw(obj: obj.accounting_period) obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/expense_request_employee.rb b/lib/merge_ruby_client/accounting/types/expense_request_employee.rb new file mode 100644 index 00000000..e4796a1b --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/expense_request_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class ExpenseRequestEmployee + # Deserialize a JSON object to an instance of ExpenseRequestEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::ExpenseRequestEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb b/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb index 9fdca3be..783df1d7 100644 --- a/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb +++ b/lib/merge_ruby_client/accounting/types/external_target_field_api_response.rb @@ -44,7 +44,13 @@ class ExternalTargetFieldApiResponse # @return [Array] attr_reader :transaction # @return [Array] + attr_reader :accounting_period + # @return [Array] attr_reader :general_ledger_transaction + # @return [Array] + attr_reader :bank_feed_account + # @return [Array] + attr_reader :employee # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -71,11 +77,14 @@ class ExternalTargetFieldApiResponse # @param expense [Array] # @param vendor_credit [Array] # @param transaction [Array] + # @param accounting_period [Array] # @param general_ledger_transaction [Array] + # @param bank_feed_account [Array] + # @param employee [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::ExternalTargetFieldApiResponse] def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, cash_flow_statement: OMIT, - company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, general_ledger_transaction: OMIT, additional_properties: nil) + company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, additional_properties: nil) @account = account if account != OMIT @accounting_attachment = accounting_attachment if accounting_attachment != OMIT @balance_sheet = balance_sheet if balance_sheet != OMIT @@ -94,7 +103,10 @@ def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, @expense = expense if expense != OMIT @vendor_credit = vendor_credit if vendor_credit != OMIT @transaction = transaction if transaction != OMIT + @accounting_period = accounting_period if accounting_period != OMIT @general_ledger_transaction = general_ledger_transaction if general_ledger_transaction != OMIT + @bank_feed_account = bank_feed_account if bank_feed_account != OMIT + @employee = employee if employee != OMIT @additional_properties = additional_properties @_field_set = { "Account": account, @@ -115,7 +127,10 @@ def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, "Expense": expense, "VendorCredit": vendor_credit, "Transaction": transaction, - "GeneralLedgerTransaction": general_ledger_transaction + "AccountingPeriod": accounting_period, + "GeneralLedgerTransaction": general_ledger_transaction, + "BankFeedAccount": bank_feed_account, + "Employee": employee }.reject do |_k, v| v == OMIT end @@ -200,10 +215,22 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item) end + accounting_period = parsed_json["AccountingPeriod"]&.map do |item| + item = item.to_json + Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item) + end general_ledger_transaction = parsed_json["GeneralLedgerTransaction"]&.map do |item| item = item.to_json Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item) end + bank_feed_account = parsed_json["BankFeedAccount"]&.map do |item| + item = item.to_json + Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item) + end + employee = parsed_json["Employee"]&.map do |item| + item = item.to_json + Merge::Accounting::ExternalTargetFieldApi.from_json(json_object: item) + end new( account: account, accounting_attachment: accounting_attachment, @@ -223,7 +250,10 @@ def self.from_json(json_object:) expense: expense, vendor_credit: vendor_credit, transaction: transaction, + accounting_period: accounting_period, general_ledger_transaction: general_ledger_transaction, + bank_feed_account: bank_feed_account, + employee: employee, additional_properties: struct ) end @@ -260,7 +290,10 @@ def self.validate_raw(obj:) obj.expense&.is_a?(Array) != false || raise("Passed value for field obj.expense is not the expected type, validation failed.") obj.vendor_credit&.is_a?(Array) != false || raise("Passed value for field obj.vendor_credit is not the expected type, validation failed.") obj.transaction&.is_a?(Array) != false || raise("Passed value for field obj.transaction is not the expected type, validation failed.") + obj.accounting_period&.is_a?(Array) != false || raise("Passed value for field obj.accounting_period is not the expected type, validation failed.") obj.general_ledger_transaction&.is_a?(Array) != false || raise("Passed value for field obj.general_ledger_transaction is not the expected type, validation failed.") + obj.bank_feed_account&.is_a?(Array) != false || raise("Passed value for field obj.bank_feed_account is not the expected type, validation failed.") + obj.employee&.is_a?(Array) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/accounting_period_status_enum.rb b/lib/merge_ruby_client/accounting/types/feed_status_enum.rb similarity index 83% rename from lib/merge_ruby_client/accounting/types/accounting_period_status_enum.rb rename to lib/merge_ruby_client/accounting/types/feed_status_enum.rb index 29334936..c79db77f 100644 --- a/lib/merge_ruby_client/accounting/types/accounting_period_status_enum.rb +++ b/lib/merge_ruby_client/accounting/types/feed_status_enum.rb @@ -4,7 +4,7 @@ module Merge module Accounting # - `ACTIVE` - ACTIVE # - `INACTIVE` - INACTIVE - class AccountingPeriodStatusEnum + class FeedStatusEnum ACTIVE = "ACTIVE" INACTIVE = "INACTIVE" end diff --git a/lib/merge_ruby_client/accounting/types/field_format_enum.rb b/lib/merge_ruby_client/accounting/types/field_format_enum.rb new file mode 100644 index 00000000..a0ba8fe3 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/field_format_enum.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `string` - string + # - `number` - number + # - `date` - date + # - `datetime` - datetime + # - `bool` - bool + # - `list` - list + class FieldFormatEnum + STRING = "string" + NUMBER = "number" + DATE = "date" + DATETIME = "datetime" + BOOL = "bool" + LIST = "list" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field.rb b/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field.rb index 7b364c59..e08d28e0 100644 --- a/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field.rb +++ b/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field.rb @@ -26,16 +26,18 @@ class FieldMappingApiInstanceRemoteField # @param remote_endpoint_info [Merge::Accounting::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::FieldMappingApiInstanceRemoteField] - def initialize(remote_key_name:, schema:, remote_endpoint_info:, additional_properties: nil) - @remote_key_name = remote_key_name - @schema = schema + def initialize(remote_endpoint_info:, remote_key_name: OMIT, schema: OMIT, additional_properties: nil) + @remote_key_name = remote_key_name if remote_key_name != OMIT + @schema = schema if schema != OMIT @remote_endpoint_info = remote_endpoint_info @additional_properties = additional_properties @_field_set = { "remote_key_name": remote_key_name, "schema": schema, "remote_endpoint_info": remote_endpoint_info - } + }.reject do |_k, v| + v == OMIT + end end # Deserialize a JSON object to an instance of FieldMappingApiInstanceRemoteField @@ -75,8 +77,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") - obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.schema&.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") Merge::Accounting::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) end end diff --git a/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb b/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb index b2660c30..99059f91 100644 --- a/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb +++ b/lib/merge_ruby_client/accounting/types/field_mapping_api_instance_response.rb @@ -44,7 +44,13 @@ class FieldMappingApiInstanceResponse # @return [Array] attr_reader :transaction # @return [Array] + attr_reader :accounting_period + # @return [Array] attr_reader :general_ledger_transaction + # @return [Array] + attr_reader :bank_feed_account + # @return [Array] + attr_reader :employee # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -71,11 +77,14 @@ class FieldMappingApiInstanceResponse # @param expense [Array] # @param vendor_credit [Array] # @param transaction [Array] + # @param accounting_period [Array] # @param general_ledger_transaction [Array] + # @param bank_feed_account [Array] + # @param employee [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::FieldMappingApiInstanceResponse] def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, cash_flow_statement: OMIT, - company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, general_ledger_transaction: OMIT, additional_properties: nil) + company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, additional_properties: nil) @account = account if account != OMIT @accounting_attachment = accounting_attachment if accounting_attachment != OMIT @balance_sheet = balance_sheet if balance_sheet != OMIT @@ -94,7 +103,10 @@ def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, @expense = expense if expense != OMIT @vendor_credit = vendor_credit if vendor_credit != OMIT @transaction = transaction if transaction != OMIT + @accounting_period = accounting_period if accounting_period != OMIT @general_ledger_transaction = general_ledger_transaction if general_ledger_transaction != OMIT + @bank_feed_account = bank_feed_account if bank_feed_account != OMIT + @employee = employee if employee != OMIT @additional_properties = additional_properties @_field_set = { "Account": account, @@ -115,7 +127,10 @@ def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, "Expense": expense, "VendorCredit": vendor_credit, "Transaction": transaction, - "GeneralLedgerTransaction": general_ledger_transaction + "AccountingPeriod": accounting_period, + "GeneralLedgerTransaction": general_ledger_transaction, + "BankFeedAccount": bank_feed_account, + "Employee": employee }.reject do |_k, v| v == OMIT end @@ -200,10 +215,22 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item) end + accounting_period = parsed_json["AccountingPeriod"]&.map do |item| + item = item.to_json + Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item) + end general_ledger_transaction = parsed_json["GeneralLedgerTransaction"]&.map do |item| item = item.to_json Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item) end + bank_feed_account = parsed_json["BankFeedAccount"]&.map do |item| + item = item.to_json + Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item) + end + employee = parsed_json["Employee"]&.map do |item| + item = item.to_json + Merge::Accounting::FieldMappingApiInstance.from_json(json_object: item) + end new( account: account, accounting_attachment: accounting_attachment, @@ -223,7 +250,10 @@ def self.from_json(json_object:) expense: expense, vendor_credit: vendor_credit, transaction: transaction, + accounting_period: accounting_period, general_ledger_transaction: general_ledger_transaction, + bank_feed_account: bank_feed_account, + employee: employee, additional_properties: struct ) end @@ -260,7 +290,10 @@ def self.validate_raw(obj:) obj.expense&.is_a?(Array) != false || raise("Passed value for field obj.expense is not the expected type, validation failed.") obj.vendor_credit&.is_a?(Array) != false || raise("Passed value for field obj.vendor_credit is not the expected type, validation failed.") obj.transaction&.is_a?(Array) != false || raise("Passed value for field obj.transaction is not the expected type, validation failed.") + obj.accounting_period&.is_a?(Array) != false || raise("Passed value for field obj.accounting_period is not the expected type, validation failed.") obj.general_ledger_transaction&.is_a?(Array) != false || raise("Passed value for field obj.general_ledger_transaction is not the expected type, validation failed.") + obj.bank_feed_account&.is_a?(Array) != false || raise("Passed value for field obj.bank_feed_account is not the expected type, validation failed.") + obj.employee&.is_a?(Array) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/field_permission_deserializer.rb b/lib/merge_ruby_client/accounting/types/field_permission_deserializer.rb index 3692882e..f65bb342 100644 --- a/lib/merge_ruby_client/accounting/types/field_permission_deserializer.rb +++ b/lib/merge_ruby_client/accounting/types/field_permission_deserializer.rb @@ -7,9 +7,9 @@ module Merge module Accounting class FieldPermissionDeserializer # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializer OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::FieldPermissionDeserializer] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/field_permission_deserializer_request.rb b/lib/merge_ruby_client/accounting/types/field_permission_deserializer_request.rb index f8489c9a..0bd2af80 100644 --- a/lib/merge_ruby_client/accounting/types/field_permission_deserializer_request.rb +++ b/lib/merge_ruby_client/accounting/types/field_permission_deserializer_request.rb @@ -7,9 +7,9 @@ module Merge module Accounting class FieldPermissionDeserializerRequest # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializerRequest OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::FieldPermissionDeserializerRequest] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/field_type_enum.rb b/lib/merge_ruby_client/accounting/types/field_type_enum.rb new file mode 100644 index 00000000..9c5917d4 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/field_type_enum.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `string` - string + # - `number` - number + # - `date` - date + # - `datetime` - datetime + # - `bool` - bool + # - `list` - list + class FieldTypeEnum + STRING = "string" + NUMBER = "number" + DATE = "date" + DATETIME = "datetime" + BOOL = "bool" + LIST = "list" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction.rb new file mode 100644 index 00000000..1f764bfc --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction.rb @@ -0,0 +1,248 @@ +# frozen_string_literal: true + +require "date" +require_relative "underlying_transaction_type_enum" +require_relative "general_ledger_transaction_accounting_period" +require_relative "general_ledger_transaction_company" +require_relative "general_ledger_transaction_tracking_categories_item" +require_relative "general_ledger_transaction_general_ledger_transaction_lines_item" +require_relative "remote_data" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The GeneralLedgerTransaction Object + # ### Description + # A General Ledger Entry is a record of a financial transaction that is posted to + # the general ledger, the central repository of a company’s financial data. + # The `GeneralLedgerTransaction` object is a singular endpoint to pull all + # transactions posted to a company’s general ledger. The transaction that + # generated the `GeneralLedgerTransaction` can be found by referencing the + # `underlying_transaction_type` and `underlying_transaction_remote_id` fields. + # The lines of a `GeneralLedgerTransaction` object will always have equal amounts + # of debits and credits. + # ### Usage Example + # Fetch from the `GET GeneralLedgerTransaction` endpoint and view a general ledger + # transaction. + class GeneralLedgerTransaction + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [String] The third party remote ID of the underlying transaction. + attr_reader :underlying_transaction_remote_id + # @return [Merge::Accounting::UnderlyingTransactionTypeEnum] The type of the underlying transaction. + # - `INVOICE` - INVOICE + # - `EXPENSE` - EXPENSE + # - `TRANSACTION` - TRANSACTION + # - `JOURNAL_ENTRY` - JOURNAL_ENTRY + # - `PAYMENT` - PAYMENT + # - `VENDOR_CREDIT` - VENDOR_CREDIT + # - `CREDIT_NOTE` - CREDIT_NOTE + attr_reader :underlying_transaction_type + # @return [Merge::Accounting::GeneralLedgerTransactionAccountingPeriod] The accounting period that the GeneralLedgerTransaction was generated in. + attr_reader :accounting_period + # @return [Merge::Accounting::GeneralLedgerTransactionCompany] The company the GeneralLedgerTransaction belongs to. + attr_reader :company + # @return [DateTime] When the third party's GeneralLedgerTransaction entry was updated. + attr_reader :remote_updated_at + # @return [DateTime] When the third party's GeneralLedgerTransaction entry was created. + attr_reader :remote_created_at + # @return [Array] + attr_reader :tracking_categories + # @return [DateTime] The date that the transaction was posted to the general ledger. + attr_reader :posting_date + # @return [Array] A list of “General Ledger Transaction Applied to Lines” objects. + attr_reader :general_ledger_transaction_lines + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [Hash{String => Object}] + attr_reader :field_mappings + # @return [Array] + attr_reader :remote_data + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param underlying_transaction_remote_id [String] The third party remote ID of the underlying transaction. + # @param underlying_transaction_type [Merge::Accounting::UnderlyingTransactionTypeEnum] The type of the underlying transaction. + # - `INVOICE` - INVOICE + # - `EXPENSE` - EXPENSE + # - `TRANSACTION` - TRANSACTION + # - `JOURNAL_ENTRY` - JOURNAL_ENTRY + # - `PAYMENT` - PAYMENT + # - `VENDOR_CREDIT` - VENDOR_CREDIT + # - `CREDIT_NOTE` - CREDIT_NOTE + # @param accounting_period [Merge::Accounting::GeneralLedgerTransactionAccountingPeriod] The accounting period that the GeneralLedgerTransaction was generated in. + # @param company [Merge::Accounting::GeneralLedgerTransactionCompany] The company the GeneralLedgerTransaction belongs to. + # @param remote_updated_at [DateTime] When the third party's GeneralLedgerTransaction entry was updated. + # @param remote_created_at [DateTime] When the third party's GeneralLedgerTransaction entry was created. + # @param tracking_categories [Array] + # @param posting_date [DateTime] The date that the transaction was posted to the general ledger. + # @param general_ledger_transaction_lines [Array] A list of “General Ledger Transaction Applied to Lines” objects. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param field_mappings [Hash{String => Object}] + # @param remote_data [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::GeneralLedgerTransaction] + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, + underlying_transaction_remote_id: OMIT, underlying_transaction_type: OMIT, accounting_period: OMIT, company: OMIT, remote_updated_at: OMIT, remote_created_at: OMIT, tracking_categories: OMIT, posting_date: OMIT, general_ledger_transaction_lines: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @underlying_transaction_remote_id = underlying_transaction_remote_id if underlying_transaction_remote_id != OMIT + @underlying_transaction_type = underlying_transaction_type if underlying_transaction_type != OMIT + @accounting_period = accounting_period if accounting_period != OMIT + @company = company if company != OMIT + @remote_updated_at = remote_updated_at if remote_updated_at != OMIT + @remote_created_at = remote_created_at if remote_created_at != OMIT + @tracking_categories = tracking_categories if tracking_categories != OMIT + @posting_date = posting_date if posting_date != OMIT + @general_ledger_transaction_lines = general_ledger_transaction_lines if general_ledger_transaction_lines != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @field_mappings = field_mappings if field_mappings != OMIT + @remote_data = remote_data if remote_data != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "underlying_transaction_remote_id": underlying_transaction_remote_id, + "underlying_transaction_type": underlying_transaction_type, + "accounting_period": accounting_period, + "company": company, + "remote_updated_at": remote_updated_at, + "remote_created_at": remote_created_at, + "tracking_categories": tracking_categories, + "posting_date": posting_date, + "general_ledger_transaction_lines": general_ledger_transaction_lines, + "remote_was_deleted": remote_was_deleted, + "field_mappings": field_mappings, + "remote_data": remote_data + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of GeneralLedgerTransaction + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransaction] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + underlying_transaction_remote_id = parsed_json["underlying_transaction_remote_id"] + underlying_transaction_type = parsed_json["underlying_transaction_type"] + if parsed_json["accounting_period"].nil? + accounting_period = nil + else + accounting_period = parsed_json["accounting_period"].to_json + accounting_period = Merge::Accounting::GeneralLedgerTransactionAccountingPeriod.from_json(json_object: accounting_period) + end + if parsed_json["company"].nil? + company = nil + else + company = parsed_json["company"].to_json + company = Merge::Accounting::GeneralLedgerTransactionCompany.from_json(json_object: company) + end + remote_updated_at = unless parsed_json["remote_updated_at"].nil? + DateTime.parse(parsed_json["remote_updated_at"]) + end + remote_created_at = unless parsed_json["remote_created_at"].nil? + DateTime.parse(parsed_json["remote_created_at"]) + end + tracking_categories = parsed_json["tracking_categories"]&.map do |item| + item = item.to_json + Merge::Accounting::GeneralLedgerTransactionTrackingCategoriesItem.from_json(json_object: item) + end + posting_date = (DateTime.parse(parsed_json["posting_date"]) unless parsed_json["posting_date"].nil?) + general_ledger_transaction_lines = parsed_json["general_ledger_transaction_lines"]&.map do |item| + item = item.to_json + Merge::Accounting::GeneralLedgerTransactionGeneralLedgerTransactionLinesItem.from_json(json_object: item) + end + remote_was_deleted = parsed_json["remote_was_deleted"] + field_mappings = parsed_json["field_mappings"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteData.from_json(json_object: item) + end + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + underlying_transaction_remote_id: underlying_transaction_remote_id, + underlying_transaction_type: underlying_transaction_type, + accounting_period: accounting_period, + company: company, + remote_updated_at: remote_updated_at, + remote_created_at: remote_created_at, + tracking_categories: tracking_categories, + posting_date: posting_date, + general_ledger_transaction_lines: general_ledger_transaction_lines, + remote_was_deleted: remote_was_deleted, + field_mappings: field_mappings, + remote_data: remote_data, + additional_properties: struct + ) + end + + # Serialize an instance of GeneralLedgerTransaction to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.underlying_transaction_remote_id&.is_a?(String) != false || raise("Passed value for field obj.underlying_transaction_remote_id is not the expected type, validation failed.") + obj.underlying_transaction_type&.is_a?(Merge::Accounting::UnderlyingTransactionTypeEnum) != false || raise("Passed value for field obj.underlying_transaction_type is not the expected type, validation failed.") + obj.accounting_period.nil? || Merge::Accounting::GeneralLedgerTransactionAccountingPeriod.validate_raw(obj: obj.accounting_period) + obj.company.nil? || Merge::Accounting::GeneralLedgerTransactionCompany.validate_raw(obj: obj.company) + obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") + obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.posting_date&.is_a?(DateTime) != false || raise("Passed value for field obj.posting_date is not the expected type, validation failed.") + obj.general_ledger_transaction_lines&.is_a?(Array) != false || raise("Passed value for field obj.general_ledger_transaction_lines is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") + obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_accounting_period.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_accounting_period.rb new file mode 100644 index 00000000..0634ce15 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_accounting_period.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "accounting_period" + +module Merge + module Accounting + # The accounting period that the GeneralLedgerTransaction was generated in. + class GeneralLedgerTransactionAccountingPeriod + # Deserialize a JSON object to an instance of + # GeneralLedgerTransactionAccountingPeriod + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionAccountingPeriod] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::AccountingPeriod.validate_raw(obj: struct) + return Merge::Accounting::AccountingPeriod.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::AccountingPeriod.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_company.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_company.rb new file mode 100644 index 00000000..4c72c208 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_company.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "company_info" + +module Merge + module Accounting + # The company the GeneralLedgerTransaction belongs to. + class GeneralLedgerTransactionCompany + # Deserialize a JSON object to an instance of GeneralLedgerTransactionCompany + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionCompany] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CompanyInfo.validate_raw(obj: struct) + return Merge::Accounting::CompanyInfo.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CompanyInfo.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_general_ledger_transaction_lines_item.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_general_ledger_transaction_lines_item.rb new file mode 100644 index 00000000..56054d86 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_general_ledger_transaction_lines_item.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "general_ledger_transaction_line" + +module Merge + module Accounting + class GeneralLedgerTransactionGeneralLedgerTransactionLinesItem + # Deserialize a JSON object to an instance of + # GeneralLedgerTransactionGeneralLedgerTransactionLinesItem + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionGeneralLedgerTransactionLinesItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::GeneralLedgerTransactionLine.validate_raw(obj: struct) + return Merge::Accounting::GeneralLedgerTransactionLine.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::GeneralLedgerTransactionLine.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb new file mode 100644 index 00000000..bda92ad5 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line.rb @@ -0,0 +1,1490 @@ +# frozen_string_literal: true + +require "date" +require_relative "general_ledger_transaction_line_account" +require_relative "general_ledger_transaction_line_company" +require_relative "general_ledger_transaction_line_employee" +require_relative "general_ledger_transaction_line_contact" +require_relative "transaction_currency_enum" +require_relative "tracking_category" +require_relative "general_ledger_transaction_line_item" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The GeneralLedgerTransactionLineSerializer Object + # ### Description + # The `GeneralLedgerTransactionLineSerializer` object represents general ledger + # transaction line item. + # ### Usage Example Fetch from the `GET GeneralLedgerTransactionLineSerializer` + # endpoint and view an + # `GeneralLedgerTransaction` line item. + class GeneralLedgerTransactionLine + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Accounting::GeneralLedgerTransactionLineAccount] + attr_reader :account + # @return [Merge::Accounting::GeneralLedgerTransactionLineCompany] The company the GeneralLedgerTransaction belongs to. + attr_reader :company + # @return [Merge::Accounting::GeneralLedgerTransactionLineEmployee] + attr_reader :employee + # @return [Merge::Accounting::GeneralLedgerTransactionLineContact] + attr_reader :contact + # @return [Merge::Accounting::TransactionCurrencyEnum] The base currency of the transaction + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + attr_reader :base_currency + # @return [Merge::Accounting::TransactionCurrencyEnum] The transaction currency that the transaction is made in. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + attr_reader :transaction_currency + # @return [String] The exchange rate between the base currency and the transaction currency. + attr_reader :exchange_rate + # @return [String] A description of the line item. + attr_reader :description + # @return [Array] + attr_reader :tracking_categories + # @return [String] + attr_reader :debit_amount + # @return [String] + attr_reader :credit_amount + # @return [Merge::Accounting::GeneralLedgerTransactionLineItem] + attr_reader :item + # @return [String] + attr_reader :foreign_debit_amount + # @return [String] + attr_reader :foreign_credit_amount + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [Hash{String => Object}] + attr_reader :field_mappings + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param account [Merge::Accounting::GeneralLedgerTransactionLineAccount] + # @param company [Merge::Accounting::GeneralLedgerTransactionLineCompany] The company the GeneralLedgerTransaction belongs to. + # @param employee [Merge::Accounting::GeneralLedgerTransactionLineEmployee] + # @param contact [Merge::Accounting::GeneralLedgerTransactionLineContact] + # @param base_currency [Merge::Accounting::TransactionCurrencyEnum] The base currency of the transaction + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + # @param transaction_currency [Merge::Accounting::TransactionCurrencyEnum] The transaction currency that the transaction is made in. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + # @param exchange_rate [String] The exchange rate between the base currency and the transaction currency. + # @param description [String] A description of the line item. + # @param tracking_categories [Array] + # @param debit_amount [String] + # @param credit_amount [String] + # @param item [Merge::Accounting::GeneralLedgerTransactionLineItem] + # @param foreign_debit_amount [String] + # @param foreign_credit_amount [String] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param field_mappings [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::GeneralLedgerTransactionLine] + def initialize(debit_amount:, credit_amount:, foreign_debit_amount:, foreign_credit_amount:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, account: OMIT, company: OMIT, + employee: OMIT, contact: OMIT, base_currency: OMIT, transaction_currency: OMIT, exchange_rate: OMIT, description: OMIT, tracking_categories: OMIT, item: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @account = account if account != OMIT + @company = company if company != OMIT + @employee = employee if employee != OMIT + @contact = contact if contact != OMIT + @base_currency = base_currency if base_currency != OMIT + @transaction_currency = transaction_currency if transaction_currency != OMIT + @exchange_rate = exchange_rate if exchange_rate != OMIT + @description = description if description != OMIT + @tracking_categories = tracking_categories if tracking_categories != OMIT + @debit_amount = debit_amount + @credit_amount = credit_amount + @item = item if item != OMIT + @foreign_debit_amount = foreign_debit_amount + @foreign_credit_amount = foreign_credit_amount + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @field_mappings = field_mappings if field_mappings != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "account": account, + "company": company, + "employee": employee, + "contact": contact, + "base_currency": base_currency, + "transaction_currency": transaction_currency, + "exchange_rate": exchange_rate, + "description": description, + "tracking_categories": tracking_categories, + "debit_amount": debit_amount, + "credit_amount": credit_amount, + "item": item, + "foreign_debit_amount": foreign_debit_amount, + "foreign_credit_amount": foreign_credit_amount, + "remote_was_deleted": remote_was_deleted, + "field_mappings": field_mappings + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of GeneralLedgerTransactionLine + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionLine] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["account"].nil? + account = nil + else + account = parsed_json["account"].to_json + account = Merge::Accounting::GeneralLedgerTransactionLineAccount.from_json(json_object: account) + end + if parsed_json["company"].nil? + company = nil + else + company = parsed_json["company"].to_json + company = Merge::Accounting::GeneralLedgerTransactionLineCompany.from_json(json_object: company) + end + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::GeneralLedgerTransactionLineEmployee.from_json(json_object: employee) + end + if parsed_json["contact"].nil? + contact = nil + else + contact = parsed_json["contact"].to_json + contact = Merge::Accounting::GeneralLedgerTransactionLineContact.from_json(json_object: contact) + end + base_currency = parsed_json["base_currency"] + transaction_currency = parsed_json["transaction_currency"] + exchange_rate = parsed_json["exchange_rate"] + description = parsed_json["description"] + tracking_categories = parsed_json["tracking_categories"]&.map do |item| + item = item.to_json + Merge::Accounting::TrackingCategory.from_json(json_object: item) + end + debit_amount = parsed_json["debit_amount"] + credit_amount = parsed_json["credit_amount"] + if parsed_json["item"].nil? + item = nil + else + item = parsed_json["item"].to_json + item = Merge::Accounting::GeneralLedgerTransactionLineItem.from_json(json_object: item) + end + foreign_debit_amount = parsed_json["foreign_debit_amount"] + foreign_credit_amount = parsed_json["foreign_credit_amount"] + remote_was_deleted = parsed_json["remote_was_deleted"] + field_mappings = parsed_json["field_mappings"] + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + account: account, + company: company, + employee: employee, + contact: contact, + base_currency: base_currency, + transaction_currency: transaction_currency, + exchange_rate: exchange_rate, + description: description, + tracking_categories: tracking_categories, + debit_amount: debit_amount, + credit_amount: credit_amount, + item: item, + foreign_debit_amount: foreign_debit_amount, + foreign_credit_amount: foreign_credit_amount, + remote_was_deleted: remote_was_deleted, + field_mappings: field_mappings, + additional_properties: struct + ) + end + + # Serialize an instance of GeneralLedgerTransactionLine to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.account.nil? || Merge::Accounting::GeneralLedgerTransactionLineAccount.validate_raw(obj: obj.account) + obj.company.nil? || Merge::Accounting::GeneralLedgerTransactionLineCompany.validate_raw(obj: obj.company) + obj.employee.nil? || Merge::Accounting::GeneralLedgerTransactionLineEmployee.validate_raw(obj: obj.employee) + obj.contact.nil? || Merge::Accounting::GeneralLedgerTransactionLineContact.validate_raw(obj: obj.contact) + obj.base_currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.base_currency is not the expected type, validation failed.") + obj.transaction_currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.transaction_currency is not the expected type, validation failed.") + obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.debit_amount.is_a?(String) != false || raise("Passed value for field obj.debit_amount is not the expected type, validation failed.") + obj.credit_amount.is_a?(String) != false || raise("Passed value for field obj.credit_amount is not the expected type, validation failed.") + obj.item.nil? || Merge::Accounting::GeneralLedgerTransactionLineItem.validate_raw(obj: obj.item) + obj.foreign_debit_amount.is_a?(String) != false || raise("Passed value for field obj.foreign_debit_amount is not the expected type, validation failed.") + obj.foreign_credit_amount.is_a?(String) != false || raise("Passed value for field obj.foreign_credit_amount is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_account.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_account.rb new file mode 100644 index 00000000..b5d990b3 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_account.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "account" + +module Merge + module Accounting + class GeneralLedgerTransactionLineAccount + # Deserialize a JSON object to an instance of GeneralLedgerTransactionLineAccount + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionLineAccount] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Account.validate_raw(obj: struct) + return Merge::Accounting::Account.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Account.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_company.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_company.rb new file mode 100644 index 00000000..5e6c98a4 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_company.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "company_info" + +module Merge + module Accounting + # The company the GeneralLedgerTransaction belongs to. + class GeneralLedgerTransactionLineCompany + # Deserialize a JSON object to an instance of GeneralLedgerTransactionLineCompany + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionLineCompany] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CompanyInfo.validate_raw(obj: struct) + return Merge::Accounting::CompanyInfo.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CompanyInfo.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_contact.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_contact.rb new file mode 100644 index 00000000..c2b170a5 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_contact.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "contact" + +module Merge + module Accounting + class GeneralLedgerTransactionLineContact + # Deserialize a JSON object to an instance of GeneralLedgerTransactionLineContact + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionLineContact] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Contact.validate_raw(obj: struct) + return Merge::Accounting::Contact.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Contact.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_employee.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_employee.rb new file mode 100644 index 00000000..9bc9683c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_employee.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + class GeneralLedgerTransactionLineEmployee + # Deserialize a JSON object to an instance of GeneralLedgerTransactionLineEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionLineEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_item.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_item.rb new file mode 100644 index 00000000..d3edf47c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_line_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "item" + +module Merge + module Accounting + class GeneralLedgerTransactionLineItem + # Deserialize a JSON object to an instance of GeneralLedgerTransactionLineItem + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionLineItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Item.validate_raw(obj: struct) + return Merge::Accounting::Item.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Item.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/general_ledger_transaction_tracking_categories_item.rb b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_tracking_categories_item.rb new file mode 100644 index 00000000..f67d292e --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/general_ledger_transaction_tracking_categories_item.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "tracking_category" + +module Merge + module Accounting + class GeneralLedgerTransactionTrackingCategoriesItem + # Deserialize a JSON object to an instance of + # GeneralLedgerTransactionTrackingCategoriesItem + # + # @param json_object [String] + # @return [Merge::Accounting::GeneralLedgerTransactionTrackingCategoriesItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::TrackingCategory.validate_raw(obj: struct) + return Merge::Accounting::TrackingCategory.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::TrackingCategory.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/income_statement.rb b/lib/merge_ruby_client/accounting/types/income_statement.rb index 7af44f21..f7751d5c 100644 --- a/lib/merge_ruby_client/accounting/types/income_statement.rb +++ b/lib/merge_ruby_client/accounting/types/income_statement.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "date" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "income_statement_company" require_relative "report_item" require_relative "remote_data" @@ -30,7 +30,7 @@ class IncomeStatement attr_reader :modified_at # @return [String] The income statement's name. attr_reader :name - # @return [Merge::Accounting::CurrencyEnum] The income statement's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The income statement's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -359,7 +359,9 @@ class IncomeStatement # @return [Float] The gross profit minus the total expenses. attr_reader :net_income # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -378,7 +380,7 @@ class IncomeStatement # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The income statement's name. - # @param currency [Merge::Accounting::CurrencyEnum] The income statement's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The income statement's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -696,7 +698,9 @@ class IncomeStatement # @param non_operating_expenses [Array] # @param net_income [Float] The gross profit minus the total expenses. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition @@ -837,7 +841,7 @@ def self.validate_raw(obj:) obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::IncomeStatementCompany.validate_raw(obj: obj.company) obj.start_period&.is_a?(DateTime) != false || raise("Passed value for field obj.start_period is not the expected type, validation failed.") obj.end_period&.is_a?(DateTime) != false || raise("Passed value for field obj.end_period is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/invoice.rb b/lib/merge_ruby_client/accounting/types/invoice.rb index 36775a87..d26ad06a 100644 --- a/lib/merge_ruby_client/accounting/types/invoice.rb +++ b/lib/merge_ruby_client/accounting/types/invoice.rb @@ -4,15 +4,19 @@ require_relative "invoice_type_enum" require_relative "invoice_contact" require_relative "invoice_company" -require_relative "currency_enum" +require_relative "invoice_employee" +require_relative "transaction_currency_enum" require_relative "invoice_status_enum" require_relative "invoice_tracking_categories_item" +require_relative "invoice_accounting_period" +require_relative "invoice_purchase_orders_item" require_relative "invoice_payments_item" require_relative "invoice_applied_payments_item" require_relative "invoice_line_item" -require_relative "invoice_accounting_period" -require_relative "invoice_purchase_orders_item" +require_relative "invoice_applied_credit_notes_item" +require_relative "invoice_applied_vendor_credits_item" require_relative "remote_data" +require_relative "remote_field" require "ostruct" require "json" @@ -21,7 +25,9 @@ module Accounting # # The Invoice Object # ### Description # The `Invoice` object represents an itemized record of goods and/or services sold - # to a customer. + # to a customer or bought from a vendor. + # Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. References an + # Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. # ### Usage Example # Fetch from the `LIST Invoices` endpoint and view a company's invoices. class Invoice @@ -53,7 +59,9 @@ class Invoice attr_reader :memo # @return [Merge::Accounting::InvoiceCompany] The company the invoice belongs to. attr_reader :company - # @return [Merge::Accounting::CurrencyEnum] The invoice's currency. + # @return [Merge::Accounting::InvoiceEmployee] The employee this overall transaction relates to. + attr_reader :employee + # @return [Merge::Accounting::TransactionCurrencyEnum] The invoice's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -385,6 +393,10 @@ class Invoice attr_reader :remote_updated_at # @return [Array] attr_reader :tracking_categories + # @return [Merge::Accounting::InvoiceAccountingPeriod] The accounting period that the Invoice was generated in. + attr_reader :accounting_period + # @return [Array] + attr_reader :purchase_orders # @return [Array] Array of `Payment` object IDs. attr_reader :payments # @return [Array] A list of the Payment Applied to Lines common models related to a given Invoice, @@ -392,16 +404,24 @@ class Invoice attr_reader :applied_payments # @return [Array] attr_reader :line_items - # @return [Boolean] + # @return [Array] `CreditNoteApplyLines` applied to the Invoice. + attr_reader :applied_credit_notes + # @return [Array] `VendorCreditApplyLines` applied to the Invoice. + attr_reader :applied_vendor_credits + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted - # @return [Merge::Accounting::InvoiceAccountingPeriod] The accounting period that the Invoice was generated in. - attr_reader :accounting_period - # @return [Array] - attr_reader :purchase_orders # @return [Hash{String => Object}] attr_reader :field_mappings # @return [Array] attr_reader :remote_data + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -426,7 +446,8 @@ class Invoice # @param paid_on_date [DateTime] The invoice's paid date. # @param memo [String] The invoice's private note. # @param company [Merge::Accounting::InvoiceCompany] The company the invoice belongs to. - # @param currency [Merge::Accounting::CurrencyEnum] The invoice's currency. + # @param employee [Merge::Accounting::InvoiceEmployee] The employee this overall transaction relates to. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The invoice's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -748,19 +769,27 @@ class Invoice # @param balance [Float] The invoice's remaining balance. # @param remote_updated_at [DateTime] When the third party's invoice entry was updated. # @param tracking_categories [Array] + # @param accounting_period [Merge::Accounting::InvoiceAccountingPeriod] The accounting period that the Invoice was generated in. + # @param purchase_orders [Array] # @param payments [Array] Array of `Payment` object IDs. # @param applied_payments [Array] A list of the Payment Applied to Lines common models related to a given Invoice, # Credit Note, or Journal Entry. # @param line_items [Array] - # @param remote_was_deleted [Boolean] - # @param accounting_period [Merge::Accounting::InvoiceAccountingPeriod] The accounting period that the Invoice was generated in. - # @param purchase_orders [Array] + # @param applied_credit_notes [Array] `CreditNoteApplyLines` applied to the Invoice. + # @param applied_vendor_credits [Array] `VendorCreditApplyLines` applied to the Invoice. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Invoice] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, type: OMIT, contact: OMIT, - number: OMIT, issue_date: OMIT, due_date: OMIT, paid_on_date: OMIT, memo: OMIT, company: OMIT, currency: OMIT, exchange_rate: OMIT, total_discount: OMIT, sub_total: OMIT, status: OMIT, total_tax_amount: OMIT, total_amount: OMIT, balance: OMIT, remote_updated_at: OMIT, tracking_categories: OMIT, payments: OMIT, applied_payments: OMIT, line_items: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, purchase_orders: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + number: OMIT, issue_date: OMIT, due_date: OMIT, paid_on_date: OMIT, memo: OMIT, company: OMIT, employee: OMIT, currency: OMIT, exchange_rate: OMIT, total_discount: OMIT, sub_total: OMIT, status: OMIT, total_tax_amount: OMIT, total_amount: OMIT, balance: OMIT, remote_updated_at: OMIT, tracking_categories: OMIT, accounting_period: OMIT, purchase_orders: OMIT, payments: OMIT, applied_payments: OMIT, line_items: OMIT, applied_credit_notes: OMIT, applied_vendor_credits: OMIT, inclusive_of_tax: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -773,6 +802,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @paid_on_date = paid_on_date if paid_on_date != OMIT @memo = memo if memo != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @total_discount = total_discount if total_discount != OMIT @@ -783,14 +813,18 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @balance = balance if balance != OMIT @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT + @accounting_period = accounting_period if accounting_period != OMIT + @purchase_orders = purchase_orders if purchase_orders != OMIT @payments = payments if payments != OMIT @applied_payments = applied_payments if applied_payments != OMIT @line_items = line_items if line_items != OMIT + @applied_credit_notes = applied_credit_notes if applied_credit_notes != OMIT + @applied_vendor_credits = applied_vendor_credits if applied_vendor_credits != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT - @accounting_period = accounting_period if accounting_period != OMIT - @purchase_orders = purchase_orders if purchase_orders != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -805,6 +839,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "paid_on_date": paid_on_date, "memo": memo, "company": company, + "employee": employee, "currency": currency, "exchange_rate": exchange_rate, "total_discount": total_discount, @@ -815,14 +850,18 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "balance": balance, "remote_updated_at": remote_updated_at, "tracking_categories": tracking_categories, + "accounting_period": accounting_period, + "purchase_orders": purchase_orders, "payments": payments, "applied_payments": applied_payments, "line_items": line_items, + "applied_credit_notes": applied_credit_notes, + "applied_vendor_credits": applied_vendor_credits, + "inclusive_of_tax": inclusive_of_tax, "remote_was_deleted": remote_was_deleted, - "accounting_period": accounting_period, - "purchase_orders": purchase_orders, "field_mappings": field_mappings, - "remote_data": remote_data + "remote_data": remote_data, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -857,6 +896,12 @@ def self.from_json(json_object:) company = parsed_json["company"].to_json company = Merge::Accounting::InvoiceCompany.from_json(json_object: company) end + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::InvoiceEmployee.from_json(json_object: employee) + end currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] total_discount = parsed_json["total_discount"] @@ -872,6 +917,16 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::InvoiceTrackingCategoriesItem.from_json(json_object: item) end + if parsed_json["accounting_period"].nil? + accounting_period = nil + else + accounting_period = parsed_json["accounting_period"].to_json + accounting_period = Merge::Accounting::InvoiceAccountingPeriod.from_json(json_object: accounting_period) + end + purchase_orders = parsed_json["purchase_orders"]&.map do |item| + item = item.to_json + Merge::Accounting::InvoicePurchaseOrdersItem.from_json(json_object: item) + end payments = parsed_json["payments"]&.map do |item| item = item.to_json Merge::Accounting::InvoicePaymentsItem.from_json(json_object: item) @@ -884,22 +939,25 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::InvoiceLineItem.from_json(json_object: item) end - remote_was_deleted = parsed_json["remote_was_deleted"] - if parsed_json["accounting_period"].nil? - accounting_period = nil - else - accounting_period = parsed_json["accounting_period"].to_json - accounting_period = Merge::Accounting::InvoiceAccountingPeriod.from_json(json_object: accounting_period) + applied_credit_notes = parsed_json["applied_credit_notes"]&.map do |item| + item = item.to_json + Merge::Accounting::InvoiceAppliedCreditNotesItem.from_json(json_object: item) end - purchase_orders = parsed_json["purchase_orders"]&.map do |item| + applied_vendor_credits = parsed_json["applied_vendor_credits"]&.map do |item| item = item.to_json - Merge::Accounting::InvoicePurchaseOrdersItem.from_json(json_object: item) + Merge::Accounting::InvoiceAppliedVendorCreditsItem.from_json(json_object: item) end + inclusive_of_tax = parsed_json["inclusive_of_tax"] + remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| item = item.to_json Merge::Accounting::RemoteData.from_json(json_object: item) end + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -913,6 +971,7 @@ def self.from_json(json_object:) paid_on_date: paid_on_date, memo: memo, company: company, + employee: employee, currency: currency, exchange_rate: exchange_rate, total_discount: total_discount, @@ -923,14 +982,18 @@ def self.from_json(json_object:) balance: balance, remote_updated_at: remote_updated_at, tracking_categories: tracking_categories, + accounting_period: accounting_period, + purchase_orders: purchase_orders, payments: payments, applied_payments: applied_payments, line_items: line_items, + applied_credit_notes: applied_credit_notes, + applied_vendor_credits: applied_vendor_credits, + inclusive_of_tax: inclusive_of_tax, remote_was_deleted: remote_was_deleted, - accounting_period: accounting_period, - purchase_orders: purchase_orders, field_mappings: field_mappings, remote_data: remote_data, + remote_fields: remote_fields, additional_properties: struct ) end @@ -961,7 +1024,8 @@ def self.validate_raw(obj:) obj.paid_on_date&.is_a?(DateTime) != false || raise("Passed value for field obj.paid_on_date is not the expected type, validation failed.") obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::InvoiceCompany.validate_raw(obj: obj.company) - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.employee.nil? || Merge::Accounting::InvoiceEmployee.validate_raw(obj: obj.employee) + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.total_discount&.is_a?(Float) != false || raise("Passed value for field obj.total_discount is not the expected type, validation failed.") obj.sub_total&.is_a?(Float) != false || raise("Passed value for field obj.sub_total is not the expected type, validation failed.") @@ -971,14 +1035,18 @@ def self.validate_raw(obj:) obj.balance&.is_a?(Float) != false || raise("Passed value for field obj.balance is not the expected type, validation failed.") obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.accounting_period.nil? || Merge::Accounting::InvoiceAccountingPeriod.validate_raw(obj: obj.accounting_period) + obj.purchase_orders&.is_a?(Array) != false || raise("Passed value for field obj.purchase_orders is not the expected type, validation failed.") obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.") obj.applied_payments&.is_a?(Array) != false || raise("Passed value for field obj.applied_payments is not the expected type, validation failed.") obj.line_items&.is_a?(Array) != false || raise("Passed value for field obj.line_items is not the expected type, validation failed.") + obj.applied_credit_notes&.is_a?(Array) != false || raise("Passed value for field obj.applied_credit_notes is not the expected type, validation failed.") + obj.applied_vendor_credits&.is_a?(Array) != false || raise("Passed value for field obj.applied_vendor_credits is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") - obj.accounting_period.nil? || Merge::Accounting::InvoiceAccountingPeriod.validate_raw(obj: obj.accounting_period) - obj.purchase_orders&.is_a?(Array) != false || raise("Passed value for field obj.purchase_orders is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/invoice_applied_credit_notes_item.rb b/lib/merge_ruby_client/accounting/types/invoice_applied_credit_notes_item.rb new file mode 100644 index 00000000..cadcd97b --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/invoice_applied_credit_notes_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "credit_note_apply_line_for_invoice" + +module Merge + module Accounting + class InvoiceAppliedCreditNotesItem + # Deserialize a JSON object to an instance of InvoiceAppliedCreditNotesItem + # + # @param json_object [String] + # @return [Merge::Accounting::InvoiceAppliedCreditNotesItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CreditNoteApplyLineForInvoice.validate_raw(obj: struct) + return Merge::Accounting::CreditNoteApplyLineForInvoice.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CreditNoteApplyLineForInvoice.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/invoice_applied_vendor_credits_item.rb b/lib/merge_ruby_client/accounting/types/invoice_applied_vendor_credits_item.rb new file mode 100644 index 00000000..84afb9ae --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/invoice_applied_vendor_credits_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "vendor_credit_apply_line_for_invoice" + +module Merge + module Accounting + class InvoiceAppliedVendorCreditsItem + # Deserialize a JSON object to an instance of InvoiceAppliedVendorCreditsItem + # + # @param json_object [String] + # @return [Merge::Accounting::InvoiceAppliedVendorCreditsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::VendorCreditApplyLineForInvoice.validate_raw(obj: struct) + return Merge::Accounting::VendorCreditApplyLineForInvoice.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::VendorCreditApplyLineForInvoice.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/invoice_employee.rb b/lib/merge_ruby_client/accounting/types/invoice_employee.rb new file mode 100644 index 00000000..16feb74b --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/invoice_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class InvoiceEmployee + # Deserialize a JSON object to an instance of InvoiceEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::InvoiceEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/invoice_line_item.rb b/lib/merge_ruby_client/accounting/types/invoice_line_item.rb index 2362e61f..89ee32db 100644 --- a/lib/merge_ruby_client/accounting/types/invoice_line_item.rb +++ b/lib/merge_ruby_client/accounting/types/invoice_line_item.rb @@ -1,11 +1,13 @@ # frozen_string_literal: true require "date" -require_relative "currency_enum" +require_relative "invoice_line_item_employee" +require_relative "transaction_currency_enum" require_relative "invoice_line_item_item" require_relative "invoice_line_item_account" require_relative "invoice_line_item_tracking_category" require_relative "invoice_line_item_tracking_categories_item" +require_relative "remote_field" require "ostruct" require "json" @@ -34,7 +36,9 @@ class InvoiceLineItem attr_reader :quantity # @return [Float] The line item's total amount. attr_reader :total_amount - # @return [Merge::Accounting::CurrencyEnum] The line item's currency. + # @return [Merge::Accounting::InvoiceLineItemEmployee] The employee this overall transaction relates to. + attr_reader :employee + # @return [Merge::Accounting::TransactionCurrencyEnum] The line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -348,17 +352,23 @@ class InvoiceLineItem attr_reader :item # @return [Merge::Accounting::InvoiceLineItemAccount] attr_reader :account + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [Merge::Accounting::InvoiceLineItemTrackingCategory] attr_reader :tracking_category - # @return [Array] + # @return [Array] The invoice line item's associated tracking categories. attr_reader :tracking_categories - # @return [String] The company the line item belongs to. + # @return [String] The company the invoice belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -375,7 +385,8 @@ class InvoiceLineItem # @param unit_price [Float] The line item's unit price. # @param quantity [Float] The line item's quantity. # @param total_amount [Float] The line item's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The line item's currency. + # @param employee [Merge::Accounting::InvoiceLineItemEmployee] The employee this overall transaction relates to. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -685,16 +696,20 @@ class InvoiceLineItem # @param exchange_rate [String] The line item's exchange rate. # @param item [Merge::Accounting::InvoiceLineItemItem] # @param account [Merge::Accounting::InvoiceLineItemAccount] + # @param tax_rate [String] The tax rate that applies to this line item. # @param tracking_category [Merge::Accounting::InvoiceLineItemTrackingCategory] - # @param tracking_categories [Array] - # @param company [String] The company the line item belongs to. + # @param tracking_categories [Array] The invoice line item's associated tracking categories. + # @param company [String] The company the invoice belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::InvoiceLineItem] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, description: OMIT, - unit_price: OMIT, quantity: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tracking_categories: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, additional_properties: nil) + unit_price: OMIT, quantity: OMIT, total_amount: OMIT, employee: OMIT, currency: OMIT, exchange_rate: OMIT, item: OMIT, account: OMIT, tax_rate: OMIT, tracking_category: OMIT, tracking_categories: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -703,15 +718,18 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, d @unit_price = unit_price if unit_price != OMIT @quantity = quantity if quantity != OMIT @total_amount = total_amount if total_amount != OMIT + @employee = employee if employee != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @item = item if item != OMIT @account = account if account != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @tracking_category = tracking_category if tracking_category != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @company = company if company != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -722,15 +740,18 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, d "unit_price": unit_price, "quantity": quantity, "total_amount": total_amount, + "employee": employee, "currency": currency, "exchange_rate": exchange_rate, "item": item, "account": account, + "tax_rate": tax_rate, "tracking_category": tracking_category, "tracking_categories": tracking_categories, "company": company, "remote_was_deleted": remote_was_deleted, - "field_mappings": field_mappings + "field_mappings": field_mappings, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -751,6 +772,12 @@ def self.from_json(json_object:) unit_price = parsed_json["unit_price"] quantity = parsed_json["quantity"] total_amount = parsed_json["total_amount"] + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::InvoiceLineItemEmployee.from_json(json_object: employee) + end currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] if parsed_json["item"].nil? @@ -765,6 +792,7 @@ def self.from_json(json_object:) account = parsed_json["account"].to_json account = Merge::Accounting::InvoiceLineItemAccount.from_json(json_object: account) end + tax_rate = parsed_json["tax_rate"] if parsed_json["tracking_category"].nil? tracking_category = nil else @@ -778,6 +806,10 @@ def self.from_json(json_object:) company = parsed_json["company"] remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -787,15 +819,18 @@ def self.from_json(json_object:) unit_price: unit_price, quantity: quantity, total_amount: total_amount, + employee: employee, currency: currency, exchange_rate: exchange_rate, item: item, account: account, + tax_rate: tax_rate, tracking_category: tracking_category, tracking_categories: tracking_categories, company: company, remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, + remote_fields: remote_fields, additional_properties: struct ) end @@ -822,15 +857,18 @@ def self.validate_raw(obj:) obj.unit_price&.is_a?(Float) != false || raise("Passed value for field obj.unit_price is not the expected type, validation failed.") obj.quantity&.is_a?(Float) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.") obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.employee.nil? || Merge::Accounting::InvoiceLineItemEmployee.validate_raw(obj: obj.employee) + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.item.nil? || Merge::Accounting::InvoiceLineItemItem.validate_raw(obj: obj.item) obj.account.nil? || Merge::Accounting::InvoiceLineItemAccount.validate_raw(obj: obj.account) + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.tracking_category.nil? || Merge::Accounting::InvoiceLineItemTrackingCategory.validate_raw(obj: obj.tracking_category) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/invoice_line_item_employee.rb b/lib/merge_ruby_client/accounting/types/invoice_line_item_employee.rb new file mode 100644 index 00000000..9aef3311 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/invoice_line_item_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class InvoiceLineItemEmployee + # Deserialize a JSON object to an instance of InvoiceLineItemEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::InvoiceLineItemEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb b/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb index 386343d5..cfea2184 100644 --- a/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb +++ b/lib/merge_ruby_client/accounting/types/invoice_line_item_request.rb @@ -1,10 +1,12 @@ # frozen_string_literal: true -require_relative "currency_enum" +require_relative "invoice_line_item_request_employee" +require_relative "transaction_currency_enum" require_relative "invoice_line_item_request_item" require_relative "invoice_line_item_request_account" require_relative "invoice_line_item_request_tracking_category" require_relative "invoice_line_item_request_tracking_categories_item" +require_relative "remote_field_request" require "ostruct" require "json" @@ -27,7 +29,9 @@ class InvoiceLineItemRequest attr_reader :quantity # @return [Float] The line item's total amount. attr_reader :total_amount - # @return [Merge::Accounting::CurrencyEnum] The line item's currency. + # @return [Merge::Accounting::InvoiceLineItemRequestEmployee] The employee this overall transaction relates to. + attr_reader :employee + # @return [Merge::Accounting::TransactionCurrencyEnum] The line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -341,16 +345,20 @@ class InvoiceLineItemRequest attr_reader :item # @return [Merge::Accounting::InvoiceLineItemRequestAccount] attr_reader :account + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [Merge::Accounting::InvoiceLineItemRequestTrackingCategory] attr_reader :tracking_category - # @return [Array] + # @return [Array] The invoice line item's associated tracking categories. attr_reader :tracking_categories - # @return [String] The company the line item belongs to. + # @return [String] The company the invoice belongs to. attr_reader :company # @return [Hash{String => Object}] attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -364,7 +372,8 @@ class InvoiceLineItemRequest # @param unit_price [Float] The line item's unit price. # @param quantity [Float] The line item's quantity. # @param total_amount [Float] The line item's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The line item's currency. + # @param employee [Merge::Accounting::InvoiceLineItemRequestEmployee] The employee this overall transaction relates to. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -674,29 +683,34 @@ class InvoiceLineItemRequest # @param exchange_rate [String] The line item's exchange rate. # @param item [Merge::Accounting::InvoiceLineItemRequestItem] # @param account [Merge::Accounting::InvoiceLineItemRequestAccount] + # @param tax_rate [String] The tax rate that applies to this line item. # @param tracking_category [Merge::Accounting::InvoiceLineItemRequestTrackingCategory] - # @param tracking_categories [Array] - # @param company [String] The company the line item belongs to. + # @param tracking_categories [Array] The invoice line item's associated tracking categories. + # @param company [String] The company the invoice belongs to. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::InvoiceLineItemRequest] def initialize(remote_id: OMIT, description: OMIT, unit_price: OMIT, quantity: OMIT, total_amount: OMIT, - currency: OMIT, exchange_rate: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tracking_categories: OMIT, company: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + employee: OMIT, currency: OMIT, exchange_rate: OMIT, item: OMIT, account: OMIT, tax_rate: OMIT, tracking_category: OMIT, tracking_categories: OMIT, company: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @remote_id = remote_id if remote_id != OMIT @description = description if description != OMIT @unit_price = unit_price if unit_price != OMIT @quantity = quantity if quantity != OMIT @total_amount = total_amount if total_amount != OMIT + @employee = employee if employee != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @item = item if item != OMIT @account = account if account != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @tracking_category = tracking_category if tracking_category != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @company = company if company != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "remote_id": remote_id, @@ -704,15 +718,18 @@ def initialize(remote_id: OMIT, description: OMIT, unit_price: OMIT, quantity: O "unit_price": unit_price, "quantity": quantity, "total_amount": total_amount, + "employee": employee, "currency": currency, "exchange_rate": exchange_rate, "item": item, "account": account, + "tax_rate": tax_rate, "tracking_category": tracking_category, "tracking_categories": tracking_categories, "company": company, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -730,6 +747,12 @@ def self.from_json(json_object:) unit_price = parsed_json["unit_price"] quantity = parsed_json["quantity"] total_amount = parsed_json["total_amount"] + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::InvoiceLineItemRequestEmployee.from_json(json_object: employee) + end currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] if parsed_json["item"].nil? @@ -744,6 +767,7 @@ def self.from_json(json_object:) account = parsed_json["account"].to_json account = Merge::Accounting::InvoiceLineItemRequestAccount.from_json(json_object: account) end + tax_rate = parsed_json["tax_rate"] if parsed_json["tracking_category"].nil? tracking_category = nil else @@ -757,21 +781,28 @@ def self.from_json(json_object:) company = parsed_json["company"] integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( remote_id: remote_id, description: description, unit_price: unit_price, quantity: quantity, total_amount: total_amount, + employee: employee, currency: currency, exchange_rate: exchange_rate, item: item, account: account, + tax_rate: tax_rate, tracking_category: tracking_category, tracking_categories: tracking_categories, company: company, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -795,15 +826,18 @@ def self.validate_raw(obj:) obj.unit_price&.is_a?(Float) != false || raise("Passed value for field obj.unit_price is not the expected type, validation failed.") obj.quantity&.is_a?(Float) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.") obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.employee.nil? || Merge::Accounting::InvoiceLineItemRequestEmployee.validate_raw(obj: obj.employee) + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.item.nil? || Merge::Accounting::InvoiceLineItemRequestItem.validate_raw(obj: obj.item) obj.account.nil? || Merge::Accounting::InvoiceLineItemRequestAccount.validate_raw(obj: obj.account) + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.tracking_category.nil? || Merge::Accounting::InvoiceLineItemRequestTrackingCategory.validate_raw(obj: obj.tracking_category) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/invoice_line_item_request_employee.rb b/lib/merge_ruby_client/accounting/types/invoice_line_item_request_employee.rb new file mode 100644 index 00000000..2b827468 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/invoice_line_item_request_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class InvoiceLineItemRequestEmployee + # Deserialize a JSON object to an instance of InvoiceLineItemRequestEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::InvoiceLineItemRequestEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/invoice_request.rb b/lib/merge_ruby_client/accounting/types/invoice_request.rb index bcd92142..9900c5aa 100644 --- a/lib/merge_ruby_client/accounting/types/invoice_request.rb +++ b/lib/merge_ruby_client/accounting/types/invoice_request.rb @@ -3,13 +3,15 @@ require_relative "invoice_type_enum" require_relative "invoice_request_contact" require "date" +require_relative "invoice_request_employee" require_relative "invoice_status_enum" require_relative "invoice_request_company" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "invoice_request_payments_item" require_relative "invoice_request_tracking_categories_item" require_relative "invoice_line_item_request" require_relative "invoice_request_purchase_orders_item" +require_relative "remote_field_request" require "ostruct" require "json" @@ -17,10 +19,10 @@ module Merge module Accounting # # The Invoice Object # ### Description - # The `Invoice` object represents an itemized record of goods and/or services - # sold to a customer. - # If type = accounts_payable `Invoice` is a bill, if type = accounts_receivable - # it's an invoice. + # The `Invoice` object represents an itemized record of goods and/or services sold + # to a customer or bought from a vendor. + # Represents a Bill when the `Invoice` type is `ACCOUNTS_PAYABLE`. References an + # Invoice when the `Invoice` type is `ACCOUNTS_RECEIVABLE`. # ### Usage Example # Fetch from the `LIST Invoices` endpoint and view a company's invoices. class InvoiceRequest @@ -40,6 +42,8 @@ class InvoiceRequest attr_reader :due_date # @return [DateTime] The invoice's paid date. attr_reader :paid_on_date + # @return [Merge::Accounting::InvoiceRequestEmployee] The employee this overall transaction relates to. + attr_reader :employee # @return [String] The invoice's private note. attr_reader :memo # @return [Merge::Accounting::InvoiceStatusEnum] The status of the invoice. @@ -52,7 +56,7 @@ class InvoiceRequest attr_reader :status # @return [Merge::Accounting::InvoiceRequestCompany] The company the invoice belongs to. attr_reader :company - # @return [Merge::Accounting::CurrencyEnum] The invoice's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The invoice's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -368,6 +372,9 @@ class InvoiceRequest attr_reader :sub_total # @return [Float] The total amount being paid in taxes. attr_reader :total_tax_amount + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Float] The invoice's total amount. attr_reader :total_amount # @return [Float] The invoice's remaining balance. @@ -384,6 +391,8 @@ class InvoiceRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -402,6 +411,7 @@ class InvoiceRequest # @param issue_date [DateTime] The invoice's issue date. # @param due_date [DateTime] The invoice's due date. # @param paid_on_date [DateTime] The invoice's paid date. + # @param employee [Merge::Accounting::InvoiceRequestEmployee] The employee this overall transaction relates to. # @param memo [String] The invoice's private note. # @param status [Merge::Accounting::InvoiceStatusEnum] The status of the invoice. # - `PAID` - PAID @@ -411,7 +421,7 @@ class InvoiceRequest # - `OPEN` - OPEN # - `VOID` - VOID # @param company [Merge::Accounting::InvoiceRequestCompany] The company the invoice belongs to. - # @param currency [Merge::Accounting::CurrencyEnum] The invoice's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The invoice's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -722,6 +732,8 @@ class InvoiceRequest # @param total_discount [Float] The total discounts applied to the total cost. # @param sub_total [Float] The total amount being paid before taxes. # @param total_tax_amount [Float] The total amount being paid in taxes. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param total_amount [Float] The invoice's total amount. # @param balance [Float] The invoice's remaining balance. # @param payments [Array] Array of `Payment` object IDs. @@ -730,16 +742,18 @@ class InvoiceRequest # @param purchase_orders [Array] # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::InvoiceRequest] def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_date: OMIT, paid_on_date: OMIT, - memo: OMIT, status: OMIT, company: OMIT, currency: OMIT, exchange_rate: OMIT, total_discount: OMIT, sub_total: OMIT, total_tax_amount: OMIT, total_amount: OMIT, balance: OMIT, payments: OMIT, tracking_categories: OMIT, line_items: OMIT, purchase_orders: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + employee: OMIT, memo: OMIT, status: OMIT, company: OMIT, currency: OMIT, exchange_rate: OMIT, total_discount: OMIT, sub_total: OMIT, total_tax_amount: OMIT, inclusive_of_tax: OMIT, total_amount: OMIT, balance: OMIT, payments: OMIT, tracking_categories: OMIT, line_items: OMIT, purchase_orders: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @type = type if type != OMIT @contact = contact if contact != OMIT @number = number if number != OMIT @issue_date = issue_date if issue_date != OMIT @due_date = due_date if due_date != OMIT @paid_on_date = paid_on_date if paid_on_date != OMIT + @employee = employee if employee != OMIT @memo = memo if memo != OMIT @status = status if status != OMIT @company = company if company != OMIT @@ -748,6 +762,7 @@ def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_da @total_discount = total_discount if total_discount != OMIT @sub_total = sub_total if sub_total != OMIT @total_tax_amount = total_tax_amount if total_tax_amount != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @total_amount = total_amount if total_amount != OMIT @balance = balance if balance != OMIT @payments = payments if payments != OMIT @@ -756,6 +771,7 @@ def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_da @purchase_orders = purchase_orders if purchase_orders != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "type": type, @@ -764,6 +780,7 @@ def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_da "issue_date": issue_date, "due_date": due_date, "paid_on_date": paid_on_date, + "employee": employee, "memo": memo, "status": status, "company": company, @@ -772,6 +789,7 @@ def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_da "total_discount": total_discount, "sub_total": sub_total, "total_tax_amount": total_tax_amount, + "inclusive_of_tax": inclusive_of_tax, "total_amount": total_amount, "balance": balance, "payments": payments, @@ -779,7 +797,8 @@ def initialize(type: OMIT, contact: OMIT, number: OMIT, issue_date: OMIT, due_da "line_items": line_items, "purchase_orders": purchase_orders, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -803,6 +822,12 @@ def self.from_json(json_object:) issue_date = (DateTime.parse(parsed_json["issue_date"]) unless parsed_json["issue_date"].nil?) due_date = (DateTime.parse(parsed_json["due_date"]) unless parsed_json["due_date"].nil?) paid_on_date = (DateTime.parse(parsed_json["paid_on_date"]) unless parsed_json["paid_on_date"].nil?) + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Accounting::InvoiceRequestEmployee.from_json(json_object: employee) + end memo = parsed_json["memo"] status = parsed_json["status"] if parsed_json["company"].nil? @@ -816,6 +841,7 @@ def self.from_json(json_object:) total_discount = parsed_json["total_discount"] sub_total = parsed_json["sub_total"] total_tax_amount = parsed_json["total_tax_amount"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] total_amount = parsed_json["total_amount"] balance = parsed_json["balance"] payments = parsed_json["payments"]&.map do |item| @@ -836,6 +862,10 @@ def self.from_json(json_object:) end integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( type: type, contact: contact, @@ -843,6 +873,7 @@ def self.from_json(json_object:) issue_date: issue_date, due_date: due_date, paid_on_date: paid_on_date, + employee: employee, memo: memo, status: status, company: company, @@ -851,6 +882,7 @@ def self.from_json(json_object:) total_discount: total_discount, sub_total: sub_total, total_tax_amount: total_tax_amount, + inclusive_of_tax: inclusive_of_tax, total_amount: total_amount, balance: balance, payments: payments, @@ -859,6 +891,7 @@ def self.from_json(json_object:) purchase_orders: purchase_orders, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -883,14 +916,16 @@ def self.validate_raw(obj:) obj.issue_date&.is_a?(DateTime) != false || raise("Passed value for field obj.issue_date is not the expected type, validation failed.") obj.due_date&.is_a?(DateTime) != false || raise("Passed value for field obj.due_date is not the expected type, validation failed.") obj.paid_on_date&.is_a?(DateTime) != false || raise("Passed value for field obj.paid_on_date is not the expected type, validation failed.") + obj.employee.nil? || Merge::Accounting::InvoiceRequestEmployee.validate_raw(obj: obj.employee) obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.status&.is_a?(Merge::Accounting::InvoiceStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::InvoiceRequestCompany.validate_raw(obj: obj.company) - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.total_discount&.is_a?(Float) != false || raise("Passed value for field obj.total_discount is not the expected type, validation failed.") obj.sub_total&.is_a?(Float) != false || raise("Passed value for field obj.sub_total is not the expected type, validation failed.") obj.total_tax_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_tax_amount is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") obj.balance&.is_a?(Float) != false || raise("Passed value for field obj.balance is not the expected type, validation failed.") obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.") @@ -899,6 +934,7 @@ def self.validate_raw(obj:) obj.purchase_orders&.is_a?(Array) != false || raise("Passed value for field obj.purchase_orders is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/invoice_request_employee.rb b/lib/merge_ruby_client/accounting/types/invoice_request_employee.rb new file mode 100644 index 00000000..31dce709 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/invoice_request_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Accounting + # The employee this overall transaction relates to. + class InvoiceRequestEmployee + # Deserialize a JSON object to an instance of InvoiceRequestEmployee + # + # @param json_object [String] + # @return [Merge::Accounting::InvoiceRequestEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Employee.validate_raw(obj: struct) + return Merge::Accounting::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/item.rb b/lib/merge_ruby_client/accounting/types/item.rb index 7f35eb20..c4b74482 100644 --- a/lib/merge_ruby_client/accounting/types/item.rb +++ b/lib/merge_ruby_client/accounting/types/item.rb @@ -5,6 +5,8 @@ require_relative "item_purchase_account" require_relative "item_sales_account" require_relative "item_company" +require_relative "item_purchase_tax_rate" +require_relative "item_sales_tax_rate" require_relative "remote_data" require "ostruct" require "json" @@ -41,10 +43,16 @@ class Item attr_reader :sales_account # @return [Merge::Accounting::ItemCompany] The company the item belongs to. attr_reader :company + # @return [Merge::Accounting::ItemPurchaseTaxRate] The default purchase tax rate for this item. + attr_reader :purchase_tax_rate + # @return [Merge::Accounting::ItemSalesTaxRate] The default sales tax rate for this item. + attr_reader :sales_tax_rate # @return [DateTime] When the third party's item note was updated. attr_reader :remote_updated_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -71,15 +79,19 @@ class Item # @param purchase_account [Merge::Accounting::ItemPurchaseAccount] References the default account used to record a purchase of the item. # @param sales_account [Merge::Accounting::ItemSalesAccount] References the default account used to record a sale. # @param company [Merge::Accounting::ItemCompany] The company the item belongs to. + # @param purchase_tax_rate [Merge::Accounting::ItemPurchaseTaxRate] The default purchase tax rate for this item. + # @param sales_tax_rate [Merge::Accounting::ItemSalesTaxRate] The default sales tax rate for this item. # @param remote_updated_at [DateTime] When the third party's item note was updated. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Item] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, status: OMIT, - unit_price: OMIT, purchase_price: OMIT, purchase_account: OMIT, sales_account: OMIT, company: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + unit_price: OMIT, purchase_price: OMIT, purchase_account: OMIT, sales_account: OMIT, company: OMIT, purchase_tax_rate: OMIT, sales_tax_rate: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -91,6 +103,8 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @purchase_account = purchase_account if purchase_account != OMIT @sales_account = sales_account if sales_account != OMIT @company = company if company != OMIT + @purchase_tax_rate = purchase_tax_rate if purchase_tax_rate != OMIT + @sales_tax_rate = sales_tax_rate if sales_tax_rate != OMIT @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @@ -108,6 +122,8 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "purchase_account": purchase_account, "sales_account": sales_account, "company": company, + "purchase_tax_rate": purchase_tax_rate, + "sales_tax_rate": sales_tax_rate, "remote_updated_at": remote_updated_at, "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, @@ -150,6 +166,18 @@ def self.from_json(json_object:) company = parsed_json["company"].to_json company = Merge::Accounting::ItemCompany.from_json(json_object: company) end + if parsed_json["purchase_tax_rate"].nil? + purchase_tax_rate = nil + else + purchase_tax_rate = parsed_json["purchase_tax_rate"].to_json + purchase_tax_rate = Merge::Accounting::ItemPurchaseTaxRate.from_json(json_object: purchase_tax_rate) + end + if parsed_json["sales_tax_rate"].nil? + sales_tax_rate = nil + else + sales_tax_rate = parsed_json["sales_tax_rate"].to_json + sales_tax_rate = Merge::Accounting::ItemSalesTaxRate.from_json(json_object: sales_tax_rate) + end remote_updated_at = unless parsed_json["remote_updated_at"].nil? DateTime.parse(parsed_json["remote_updated_at"]) end @@ -171,6 +199,8 @@ def self.from_json(json_object:) purchase_account: purchase_account, sales_account: sales_account, company: company, + purchase_tax_rate: purchase_tax_rate, + sales_tax_rate: sales_tax_rate, remote_updated_at: remote_updated_at, remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, @@ -204,6 +234,8 @@ def self.validate_raw(obj:) obj.purchase_account.nil? || Merge::Accounting::ItemPurchaseAccount.validate_raw(obj: obj.purchase_account) obj.sales_account.nil? || Merge::Accounting::ItemSalesAccount.validate_raw(obj: obj.sales_account) obj.company.nil? || Merge::Accounting::ItemCompany.validate_raw(obj: obj.company) + obj.purchase_tax_rate.nil? || Merge::Accounting::ItemPurchaseTaxRate.validate_raw(obj: obj.purchase_tax_rate) + obj.sales_tax_rate.nil? || Merge::Accounting::ItemSalesTaxRate.validate_raw(obj: obj.sales_tax_rate) obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/item_format_enum.rb b/lib/merge_ruby_client/accounting/types/item_format_enum.rb new file mode 100644 index 00000000..935854cf --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/item_format_enum.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `string` - uuid + # - `number` - url + # - `date` - email + # - `datetime` - phone + # - `bool` - currency + # - `list` - decimal + class ItemFormatEnum + STRING = "string" + NUMBER = "number" + DATE = "date" + DATETIME = "datetime" + BOOL = "bool" + LIST = "list" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/item_purchase_tax_rate.rb b/lib/merge_ruby_client/accounting/types/item_purchase_tax_rate.rb new file mode 100644 index 00000000..4beaeeef --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/item_purchase_tax_rate.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "tax_rate" + +module Merge + module Accounting + # The default purchase tax rate for this item. + class ItemPurchaseTaxRate + # Deserialize a JSON object to an instance of ItemPurchaseTaxRate + # + # @param json_object [String] + # @return [Merge::Accounting::ItemPurchaseTaxRate] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::TaxRate.validate_raw(obj: struct) + return Merge::Accounting::TaxRate.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::TaxRate.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/item_sales_tax_rate.rb b/lib/merge_ruby_client/accounting/types/item_sales_tax_rate.rb new file mode 100644 index 00000000..06e59da7 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/item_sales_tax_rate.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "tax_rate" + +module Merge + module Accounting + # The default sales tax rate for this item. + class ItemSalesTaxRate + # Deserialize a JSON object to an instance of ItemSalesTaxRate + # + # @param json_object [String] + # @return [Merge::Accounting::ItemSalesTaxRate] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::TaxRate.validate_raw(obj: struct) + return Merge::Accounting::TaxRate.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::TaxRate.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/item_schema.rb b/lib/merge_ruby_client/accounting/types/item_schema.rb new file mode 100644 index 00000000..b3f112b8 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/item_schema.rb @@ -0,0 +1,82 @@ +# frozen_string_literal: true + +require_relative "item_type_enum" +require_relative "item_format_enum" +require "ostruct" +require "json" + +module Merge + module Accounting + class ItemSchema + # @return [Merge::Accounting::ItemTypeEnum] + attr_reader :item_type + # @return [Merge::Accounting::ItemFormatEnum] + attr_reader :item_format + # @return [Array] + attr_reader :item_choices + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param item_type [Merge::Accounting::ItemTypeEnum] + # @param item_format [Merge::Accounting::ItemFormatEnum] + # @param item_choices [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::ItemSchema] + def initialize(item_type: OMIT, item_format: OMIT, item_choices: OMIT, additional_properties: nil) + @item_type = item_type if item_type != OMIT + @item_format = item_format if item_format != OMIT + @item_choices = item_choices if item_choices != OMIT + @additional_properties = additional_properties + @_field_set = { + "item_type": item_type, + "item_format": item_format, + "item_choices": item_choices + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of ItemSchema + # + # @param json_object [String] + # @return [Merge::Accounting::ItemSchema] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + item_type = parsed_json["item_type"] + item_format = parsed_json["item_format"] + item_choices = parsed_json["item_choices"] + new( + item_type: item_type, + item_format: item_format, + item_choices: item_choices, + additional_properties: struct + ) + end + + # Serialize an instance of ItemSchema to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.item_type&.is_a?(Merge::Accounting::ItemTypeEnum) != false || raise("Passed value for field obj.item_type is not the expected type, validation failed.") + obj.item_format&.is_a?(Merge::Accounting::ItemFormatEnum) != false || raise("Passed value for field obj.item_format is not the expected type, validation failed.") + obj.item_choices&.is_a?(Array) != false || raise("Passed value for field obj.item_choices is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/item_type_enum.rb b/lib/merge_ruby_client/accounting/types/item_type_enum.rb new file mode 100644 index 00000000..804e716c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/item_type_enum.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `string` - string + # - `number` - number + # - `date` - date + # - `datetime` - datetime + # - `bool` - bool + # - `list` - list + class ItemTypeEnum + STRING = "string" + NUMBER = "number" + DATE = "date" + DATETIME = "datetime" + BOOL = "bool" + LIST = "list" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/journal_entry.rb b/lib/merge_ruby_client/accounting/types/journal_entry.rb index 041a18fb..4fb29049 100644 --- a/lib/merge_ruby_client/accounting/types/journal_entry.rb +++ b/lib/merge_ruby_client/accounting/types/journal_entry.rb @@ -3,13 +3,14 @@ require "date" require_relative "journal_entry_payments_item" require_relative "journal_entry_applied_payments_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "journal_entry_company" require_relative "journal_line" require_relative "journal_entry_tracking_categories_item" require_relative "posting_status_enum" require_relative "journal_entry_accounting_period" require_relative "remote_data" +require_relative "remote_field" require "ostruct" require "json" @@ -38,10 +39,6 @@ class JournalEntry attr_reader :modified_at # @return [DateTime] The journal entry's transaction date. attr_reader :transaction_date - # @return [DateTime] When the third party's journal entry was created. - attr_reader :remote_created_at - # @return [DateTime] When the third party's journal entry was updated. - attr_reader :remote_updated_at # @return [Array] Array of `Payment` object IDs. attr_reader :payments # @return [Array] A list of the Payment Applied to Lines common models related to a given Invoice, @@ -49,7 +46,7 @@ class JournalEntry attr_reader :applied_payments # @return [String] The journal entry's private note. attr_reader :memo - # @return [Merge::Accounting::CurrencyEnum] The journal's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The journal's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -361,13 +358,19 @@ class JournalEntry attr_reader :exchange_rate # @return [Merge::Accounting::JournalEntryCompany] The company the journal entry belongs to. attr_reader :company + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Array] attr_reader :lines # @return [String] Reference number for identifying journal entries. attr_reader :journal_number # @return [Array] attr_reader :tracking_categories - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Merge::Accounting::PostingStatusEnum] The journal's posting status. # - `UNPOSTED` - UNPOSTED @@ -375,10 +378,16 @@ class JournalEntry attr_reader :posting_status # @return [Merge::Accounting::JournalEntryAccountingPeriod] The accounting period that the JournalEntry was generated in. attr_reader :accounting_period + # @return [DateTime] When the third party's journal entry was created. + attr_reader :remote_created_at + # @return [DateTime] When the third party's journal entry was updated. + attr_reader :remote_updated_at # @return [Hash{String => Object}] attr_reader :field_mappings # @return [Array] attr_reader :remote_data + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -392,13 +401,11 @@ class JournalEntry # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param transaction_date [DateTime] The journal entry's transaction date. - # @param remote_created_at [DateTime] When the third party's journal entry was created. - # @param remote_updated_at [DateTime] When the third party's journal entry was updated. # @param payments [Array] Array of `Payment` object IDs. # @param applied_payments [Array] A list of the Payment Applied to Lines common models related to a given Invoice, # Credit Note, or Journal Entry. # @param memo [String] The journal entry's private note. - # @param currency [Merge::Accounting::CurrencyEnum] The journal's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The journal's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -707,41 +714,51 @@ class JournalEntry # - `ZWL` - Zimbabwean Dollar (2009) # @param exchange_rate [String] The journal entry's exchange rate. # @param company [Merge::Accounting::JournalEntryCompany] The company the journal entry belongs to. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param lines [Array] # @param journal_number [String] Reference number for identifying journal entries. # @param tracking_categories [Array] - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param posting_status [Merge::Accounting::PostingStatusEnum] The journal's posting status. # - `UNPOSTED` - UNPOSTED # - `POSTED` - POSTED # @param accounting_period [Merge::Accounting::JournalEntryAccountingPeriod] The accounting period that the JournalEntry was generated in. + # @param remote_created_at [DateTime] When the third party's journal entry was created. + # @param remote_updated_at [DateTime] When the third party's journal entry was updated. # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::JournalEntry] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, transaction_date: OMIT, - remote_created_at: OMIT, remote_updated_at: OMIT, payments: OMIT, applied_payments: OMIT, memo: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, lines: OMIT, journal_number: OMIT, tracking_categories: OMIT, remote_was_deleted: OMIT, posting_status: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + payments: OMIT, applied_payments: OMIT, memo: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, inclusive_of_tax: OMIT, lines: OMIT, journal_number: OMIT, tracking_categories: OMIT, remote_was_deleted: OMIT, posting_status: OMIT, accounting_period: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @transaction_date = transaction_date if transaction_date != OMIT - @remote_created_at = remote_created_at if remote_created_at != OMIT - @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @payments = payments if payments != OMIT @applied_payments = applied_payments if applied_payments != OMIT @memo = memo if memo != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @company = company if company != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @lines = lines if lines != OMIT @journal_number = journal_number if journal_number != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @posting_status = posting_status if posting_status != OMIT @accounting_period = accounting_period if accounting_period != OMIT + @remote_created_at = remote_created_at if remote_created_at != OMIT + @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -749,22 +766,24 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "created_at": created_at, "modified_at": modified_at, "transaction_date": transaction_date, - "remote_created_at": remote_created_at, - "remote_updated_at": remote_updated_at, "payments": payments, "applied_payments": applied_payments, "memo": memo, "currency": currency, "exchange_rate": exchange_rate, "company": company, + "inclusive_of_tax": inclusive_of_tax, "lines": lines, "journal_number": journal_number, "tracking_categories": tracking_categories, "remote_was_deleted": remote_was_deleted, "posting_status": posting_status, "accounting_period": accounting_period, + "remote_created_at": remote_created_at, + "remote_updated_at": remote_updated_at, "field_mappings": field_mappings, - "remote_data": remote_data + "remote_data": remote_data, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -782,12 +801,6 @@ def self.from_json(json_object:) created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) transaction_date = (DateTime.parse(parsed_json["transaction_date"]) unless parsed_json["transaction_date"].nil?) - remote_created_at = unless parsed_json["remote_created_at"].nil? - DateTime.parse(parsed_json["remote_created_at"]) - end - remote_updated_at = unless parsed_json["remote_updated_at"].nil? - DateTime.parse(parsed_json["remote_updated_at"]) - end payments = parsed_json["payments"]&.map do |item| item = item.to_json Merge::Accounting::JournalEntryPaymentsItem.from_json(json_object: item) @@ -805,6 +818,7 @@ def self.from_json(json_object:) company = parsed_json["company"].to_json company = Merge::Accounting::JournalEntryCompany.from_json(json_object: company) end + inclusive_of_tax = parsed_json["inclusive_of_tax"] lines = parsed_json["lines"]&.map do |item| item = item.to_json Merge::Accounting::JournalLine.from_json(json_object: item) @@ -822,33 +836,45 @@ def self.from_json(json_object:) accounting_period = parsed_json["accounting_period"].to_json accounting_period = Merge::Accounting::JournalEntryAccountingPeriod.from_json(json_object: accounting_period) end + remote_created_at = unless parsed_json["remote_created_at"].nil? + DateTime.parse(parsed_json["remote_created_at"]) + end + remote_updated_at = unless parsed_json["remote_updated_at"].nil? + DateTime.parse(parsed_json["remote_updated_at"]) + end field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| item = item.to_json Merge::Accounting::RemoteData.from_json(json_object: item) end + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, created_at: created_at, modified_at: modified_at, transaction_date: transaction_date, - remote_created_at: remote_created_at, - remote_updated_at: remote_updated_at, payments: payments, applied_payments: applied_payments, memo: memo, currency: currency, exchange_rate: exchange_rate, company: company, + inclusive_of_tax: inclusive_of_tax, lines: lines, journal_number: journal_number, tracking_categories: tracking_categories, remote_was_deleted: remote_was_deleted, posting_status: posting_status, accounting_period: accounting_period, + remote_created_at: remote_created_at, + remote_updated_at: remote_updated_at, field_mappings: field_mappings, remote_data: remote_data, + remote_fields: remote_fields, additional_properties: struct ) end @@ -872,22 +898,24 @@ def self.validate_raw(obj:) obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") - obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") - obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.") obj.applied_payments&.is_a?(Array) != false || raise("Passed value for field obj.applied_payments is not the expected type, validation failed.") obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::JournalEntryCompany.validate_raw(obj: obj.company) + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.lines&.is_a?(Array) != false || raise("Passed value for field obj.lines is not the expected type, validation failed.") obj.journal_number&.is_a?(String) != false || raise("Passed value for field obj.journal_number is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.posting_status&.is_a?(Merge::Accounting::PostingStatusEnum) != false || raise("Passed value for field obj.posting_status is not the expected type, validation failed.") obj.accounting_period.nil? || Merge::Accounting::JournalEntryAccountingPeriod.validate_raw(obj: obj.accounting_period) + obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") + obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/journal_entry_request.rb b/lib/merge_ruby_client/accounting/types/journal_entry_request.rb index a371994c..7383db07 100644 --- a/lib/merge_ruby_client/accounting/types/journal_entry_request.rb +++ b/lib/merge_ruby_client/accounting/types/journal_entry_request.rb @@ -2,11 +2,12 @@ require "date" require_relative "journal_entry_request_payments_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "journal_entry_request_company" require_relative "journal_entry_request_tracking_categories_item" require_relative "journal_line_request" require_relative "posting_status_enum" +require_relative "remote_field_request" require "ostruct" require "json" @@ -26,7 +27,7 @@ class JournalEntryRequest attr_reader :payments # @return [String] The journal entry's private note. attr_reader :memo - # @return [Merge::Accounting::CurrencyEnum] The journal's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The journal's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -340,6 +341,9 @@ class JournalEntryRequest attr_reader :company # @return [Array] attr_reader :tracking_categories + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Array] attr_reader :lines # @return [String] Reference number for identifying journal entries. @@ -352,6 +356,8 @@ class JournalEntryRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -363,7 +369,7 @@ class JournalEntryRequest # @param transaction_date [DateTime] The journal entry's transaction date. # @param payments [Array] Array of `Payment` object IDs. # @param memo [String] The journal entry's private note. - # @param currency [Merge::Accounting::CurrencyEnum] The journal's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The journal's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -673,6 +679,8 @@ class JournalEntryRequest # @param exchange_rate [String] The journal entry's exchange rate. # @param company [Merge::Accounting::JournalEntryRequestCompany] The company the journal entry belongs to. # @param tracking_categories [Array] + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param lines [Array] # @param journal_number [String] Reference number for identifying journal entries. # @param posting_status [Merge::Accounting::PostingStatusEnum] The journal's posting status. @@ -680,10 +688,11 @@ class JournalEntryRequest # - `POSTED` - POSTED # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::JournalEntryRequest] def initialize(transaction_date: OMIT, payments: OMIT, memo: OMIT, currency: OMIT, exchange_rate: OMIT, - company: OMIT, tracking_categories: OMIT, lines: OMIT, journal_number: OMIT, posting_status: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + company: OMIT, tracking_categories: OMIT, inclusive_of_tax: OMIT, lines: OMIT, journal_number: OMIT, posting_status: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @transaction_date = transaction_date if transaction_date != OMIT @payments = payments if payments != OMIT @memo = memo if memo != OMIT @@ -691,11 +700,13 @@ def initialize(transaction_date: OMIT, payments: OMIT, memo: OMIT, currency: OMI @exchange_rate = exchange_rate if exchange_rate != OMIT @company = company if company != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @lines = lines if lines != OMIT @journal_number = journal_number if journal_number != OMIT @posting_status = posting_status if posting_status != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "transaction_date": transaction_date, @@ -705,11 +716,13 @@ def initialize(transaction_date: OMIT, payments: OMIT, memo: OMIT, currency: OMI "exchange_rate": exchange_rate, "company": company, "tracking_categories": tracking_categories, + "inclusive_of_tax": inclusive_of_tax, "lines": lines, "journal_number": journal_number, "posting_status": posting_status, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -740,6 +753,7 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::JournalEntryRequestTrackingCategoriesItem.from_json(json_object: item) end + inclusive_of_tax = parsed_json["inclusive_of_tax"] lines = parsed_json["lines"]&.map do |item| item = item.to_json Merge::Accounting::JournalLineRequest.from_json(json_object: item) @@ -748,6 +762,10 @@ def self.from_json(json_object:) posting_status = parsed_json["posting_status"] integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( transaction_date: transaction_date, payments: payments, @@ -756,11 +774,13 @@ def self.from_json(json_object:) exchange_rate: exchange_rate, company: company, tracking_categories: tracking_categories, + inclusive_of_tax: inclusive_of_tax, lines: lines, journal_number: journal_number, posting_status: posting_status, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -782,15 +802,17 @@ def self.validate_raw(obj:) obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") obj.payments&.is_a?(Array) != false || raise("Passed value for field obj.payments is not the expected type, validation failed.") obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::JournalEntryRequestCompany.validate_raw(obj: obj.company) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.lines&.is_a?(Array) != false || raise("Passed value for field obj.lines is not the expected type, validation failed.") obj.journal_number&.is_a?(String) != false || raise("Passed value for field obj.journal_number is not the expected type, validation failed.") obj.posting_status&.is_a?(Merge::Accounting::PostingStatusEnum) != false || raise("Passed value for field obj.posting_status is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/journal_line.rb b/lib/merge_ruby_client/accounting/types/journal_line.rb index 18e356b6..4472b747 100644 --- a/lib/merge_ruby_client/accounting/types/journal_line.rb +++ b/lib/merge_ruby_client/accounting/types/journal_line.rb @@ -4,7 +4,8 @@ require_relative "journal_line_account" require_relative "journal_line_tracking_category" require_relative "journal_line_tracking_categories_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" +require_relative "remote_field" require "ostruct" require "json" @@ -31,9 +32,9 @@ class JournalLine attr_reader :net_amount # @return [Merge::Accounting::JournalLineTrackingCategory] attr_reader :tracking_category - # @return [Array] + # @return [Array] The journal line item's associated tracking categories. attr_reader :tracking_categories - # @return [Merge::Accounting::CurrencyEnum] The journal line item's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The journal line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -344,14 +345,22 @@ class JournalLine # @return [String] The company the journal entry belongs to. attr_reader :company # @return [String] + attr_reader :employee + # @return [String] attr_reader :contact + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [String] The line's description. attr_reader :description # @return [String] The journal line item's exchange rate. attr_reader :exchange_rate # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -367,8 +376,8 @@ class JournalLine # @param account [Merge::Accounting::JournalLineAccount] # @param net_amount [Float] The value of the line item including taxes and other fees. # @param tracking_category [Merge::Accounting::JournalLineTrackingCategory] - # @param tracking_categories [Array] - # @param currency [Merge::Accounting::CurrencyEnum] The journal line item's currency. + # @param tracking_categories [Array] The journal line item's associated tracking categories. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The journal line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -676,15 +685,20 @@ class JournalLine # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) # @param company [String] The company the journal entry belongs to. + # @param employee [String] # @param contact [String] + # @param tax_rate [String] The tax rate that applies to this line item. # @param description [String] The line's description. # @param exchange_rate [String] The journal line item's exchange rate. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::JournalLine] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, account: OMIT, net_amount: OMIT, - tracking_category: OMIT, tracking_categories: OMIT, currency: OMIT, company: OMIT, contact: OMIT, description: OMIT, exchange_rate: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + tracking_category: OMIT, tracking_categories: OMIT, currency: OMIT, company: OMIT, employee: OMIT, contact: OMIT, tax_rate: OMIT, description: OMIT, exchange_rate: OMIT, remote_was_deleted: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -695,10 +709,13 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, a @tracking_categories = tracking_categories if tracking_categories != OMIT @currency = currency if currency != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @contact = contact if contact != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @description = description if description != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -711,10 +728,13 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, a "tracking_categories": tracking_categories, "currency": currency, "company": company, + "employee": employee, "contact": contact, + "tax_rate": tax_rate, "description": description, "exchange_rate": exchange_rate, - "remote_was_deleted": remote_was_deleted + "remote_was_deleted": remote_was_deleted, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -750,10 +770,16 @@ def self.from_json(json_object:) end currency = parsed_json["currency"] company = parsed_json["company"] + employee = parsed_json["employee"] contact = parsed_json["contact"] + tax_rate = parsed_json["tax_rate"] description = parsed_json["description"] exchange_rate = parsed_json["exchange_rate"] remote_was_deleted = parsed_json["remote_was_deleted"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -765,10 +791,13 @@ def self.from_json(json_object:) tracking_categories: tracking_categories, currency: currency, company: company, + employee: employee, contact: contact, + tax_rate: tax_rate, description: description, exchange_rate: exchange_rate, remote_was_deleted: remote_was_deleted, + remote_fields: remote_fields, additional_properties: struct ) end @@ -795,12 +824,15 @@ def self.validate_raw(obj:) obj.net_amount&.is_a?(Float) != false || raise("Passed value for field obj.net_amount is not the expected type, validation failed.") obj.tracking_category.nil? || Merge::Accounting::JournalLineTrackingCategory.validate_raw(obj: obj.tracking_category) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") + obj.employee&.is_a?(String) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") obj.contact&.is_a?(String) != false || raise("Passed value for field obj.contact is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/journal_line_request.rb b/lib/merge_ruby_client/accounting/types/journal_line_request.rb index 1e4230a6..c5ef1d1c 100644 --- a/lib/merge_ruby_client/accounting/types/journal_line_request.rb +++ b/lib/merge_ruby_client/accounting/types/journal_line_request.rb @@ -3,7 +3,8 @@ require_relative "journal_line_request_account" require_relative "journal_line_request_tracking_category" require_relative "journal_line_request_tracking_categories_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" +require_relative "remote_field_request" require "ostruct" require "json" @@ -24,9 +25,9 @@ class JournalLineRequest attr_reader :net_amount # @return [Merge::Accounting::JournalLineRequestTrackingCategory] attr_reader :tracking_category - # @return [Array] + # @return [Array] The journal line item's associated tracking categories. attr_reader :tracking_categories - # @return [Merge::Accounting::CurrencyEnum] The journal line item's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The journal line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -337,7 +338,11 @@ class JournalLineRequest # @return [String] The company the journal entry belongs to. attr_reader :company # @return [String] + attr_reader :employee + # @return [String] attr_reader :contact + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [String] The line's description. attr_reader :description # @return [String] The journal line item's exchange rate. @@ -346,6 +351,8 @@ class JournalLineRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -358,8 +365,8 @@ class JournalLineRequest # @param account [Merge::Accounting::JournalLineRequestAccount] # @param net_amount [Float] The value of the line item including taxes and other fees. # @param tracking_category [Merge::Accounting::JournalLineRequestTrackingCategory] - # @param tracking_categories [Array] - # @param currency [Merge::Accounting::CurrencyEnum] The journal line item's currency. + # @param tracking_categories [Array] The journal line item's associated tracking categories. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The journal line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -667,15 +674,18 @@ class JournalLineRequest # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) # @param company [String] The company the journal entry belongs to. + # @param employee [String] # @param contact [String] + # @param tax_rate [String] The tax rate that applies to this line item. # @param description [String] The line's description. # @param exchange_rate [String] The journal line item's exchange rate. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::JournalLineRequest] def initialize(remote_id: OMIT, account: OMIT, net_amount: OMIT, tracking_category: OMIT, - tracking_categories: OMIT, currency: OMIT, company: OMIT, contact: OMIT, description: OMIT, exchange_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + tracking_categories: OMIT, currency: OMIT, company: OMIT, employee: OMIT, contact: OMIT, tax_rate: OMIT, description: OMIT, exchange_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @remote_id = remote_id if remote_id != OMIT @account = account if account != OMIT @net_amount = net_amount if net_amount != OMIT @@ -683,11 +693,14 @@ def initialize(remote_id: OMIT, account: OMIT, net_amount: OMIT, tracking_catego @tracking_categories = tracking_categories if tracking_categories != OMIT @currency = currency if currency != OMIT @company = company if company != OMIT + @employee = employee if employee != OMIT @contact = contact if contact != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @description = description if description != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "remote_id": remote_id, @@ -697,11 +710,14 @@ def initialize(remote_id: OMIT, account: OMIT, net_amount: OMIT, tracking_catego "tracking_categories": tracking_categories, "currency": currency, "company": company, + "employee": employee, "contact": contact, + "tax_rate": tax_rate, "description": description, "exchange_rate": exchange_rate, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -734,11 +750,17 @@ def self.from_json(json_object:) end currency = parsed_json["currency"] company = parsed_json["company"] + employee = parsed_json["employee"] contact = parsed_json["contact"] + tax_rate = parsed_json["tax_rate"] description = parsed_json["description"] exchange_rate = parsed_json["exchange_rate"] integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( remote_id: remote_id, account: account, @@ -747,11 +769,14 @@ def self.from_json(json_object:) tracking_categories: tracking_categories, currency: currency, company: company, + employee: employee, contact: contact, + tax_rate: tax_rate, description: description, exchange_rate: exchange_rate, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -775,13 +800,16 @@ def self.validate_raw(obj:) obj.net_amount&.is_a?(Float) != false || raise("Passed value for field obj.net_amount is not the expected type, validation failed.") obj.tracking_category.nil? || Merge::Accounting::JournalLineRequestTrackingCategory.validate_raw(obj: obj.tracking_category) obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") + obj.employee&.is_a?(String) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") obj.contact&.is_a?(String) != false || raise("Passed value for field obj.contact is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/language_enum.rb b/lib/merge_ruby_client/accounting/types/language_enum.rb new file mode 100644 index 00000000..31b1d11c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/language_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `en` - en + # - `de` - de + class LanguageEnum + EN = "en" + DE = "de" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/paginated_bank_feed_account_list.rb b/lib/merge_ruby_client/accounting/types/paginated_bank_feed_account_list.rb new file mode 100644 index 00000000..2f13ea9b --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/paginated_bank_feed_account_list.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require_relative "bank_feed_account" +require "ostruct" +require "json" + +module Merge + module Accounting + class PaginatedBankFeedAccountList + # @return [String] + attr_reader :next_ + # @return [String] + attr_reader :previous + # @return [Array] + attr_reader :results + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param next_ [String] + # @param previous [String] + # @param results [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::PaginatedBankFeedAccountList] + def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil) + @next_ = next_ if next_ != OMIT + @previous = previous if previous != OMIT + @results = results if results != OMIT + @additional_properties = additional_properties + @_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of PaginatedBankFeedAccountList + # + # @param json_object [String] + # @return [Merge::Accounting::PaginatedBankFeedAccountList] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + next_ = parsed_json["next"] + previous = parsed_json["previous"] + results = parsed_json["results"]&.map do |item| + item = item.to_json + Merge::Accounting::BankFeedAccount.from_json(json_object: item) + end + new( + next_: next_, + previous: previous, + results: results, + additional_properties: struct + ) + end + + # Serialize an instance of PaginatedBankFeedAccountList to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.") + obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.") + obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/paginated_bank_feed_transaction_list.rb b/lib/merge_ruby_client/accounting/types/paginated_bank_feed_transaction_list.rb new file mode 100644 index 00000000..ce99a8ce --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/paginated_bank_feed_transaction_list.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require_relative "bank_feed_transaction" +require "ostruct" +require "json" + +module Merge + module Accounting + class PaginatedBankFeedTransactionList + # @return [String] + attr_reader :next_ + # @return [String] + attr_reader :previous + # @return [Array] + attr_reader :results + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param next_ [String] + # @param previous [String] + # @param results [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::PaginatedBankFeedTransactionList] + def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil) + @next_ = next_ if next_ != OMIT + @previous = previous if previous != OMIT + @results = results if results != OMIT + @additional_properties = additional_properties + @_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of PaginatedBankFeedTransactionList + # + # @param json_object [String] + # @return [Merge::Accounting::PaginatedBankFeedTransactionList] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + next_ = parsed_json["next"] + previous = parsed_json["previous"] + results = parsed_json["results"]&.map do |item| + item = item.to_json + Merge::Accounting::BankFeedTransaction.from_json(json_object: item) + end + new( + next_: next_, + previous: previous, + results: results, + additional_properties: struct + ) + end + + # Serialize an instance of PaginatedBankFeedTransactionList to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.") + obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.") + obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/paginated_employee_list.rb b/lib/merge_ruby_client/accounting/types/paginated_employee_list.rb new file mode 100644 index 00000000..7c90b665 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/paginated_employee_list.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require_relative "employee" +require "ostruct" +require "json" + +module Merge + module Accounting + class PaginatedEmployeeList + # @return [String] + attr_reader :next_ + # @return [String] + attr_reader :previous + # @return [Array] + attr_reader :results + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param next_ [String] + # @param previous [String] + # @param results [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::PaginatedEmployeeList] + def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil) + @next_ = next_ if next_ != OMIT + @previous = previous if previous != OMIT + @results = results if results != OMIT + @additional_properties = additional_properties + @_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of PaginatedEmployeeList + # + # @param json_object [String] + # @return [Merge::Accounting::PaginatedEmployeeList] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + next_ = parsed_json["next"] + previous = parsed_json["previous"] + results = parsed_json["results"]&.map do |item| + item = item.to_json + Merge::Accounting::Employee.from_json(json_object: item) + end + new( + next_: next_, + previous: previous, + results: results, + additional_properties: struct + ) + end + + # Serialize an instance of PaginatedEmployeeList to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.") + obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.") + obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/paginated_general_ledger_transaction_list.rb b/lib/merge_ruby_client/accounting/types/paginated_general_ledger_transaction_list.rb new file mode 100644 index 00000000..3fa050f0 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/paginated_general_ledger_transaction_list.rb @@ -0,0 +1,81 @@ +# frozen_string_literal: true + +require_relative "general_ledger_transaction" +require "ostruct" +require "json" + +module Merge + module Accounting + class PaginatedGeneralLedgerTransactionList + # @return [String] + attr_reader :next_ + # @return [String] + attr_reader :previous + # @return [Array] + attr_reader :results + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param next_ [String] + # @param previous [String] + # @param results [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::PaginatedGeneralLedgerTransactionList] + def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil) + @next_ = next_ if next_ != OMIT + @previous = previous if previous != OMIT + @results = results if results != OMIT + @additional_properties = additional_properties + @_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of + # PaginatedGeneralLedgerTransactionList + # + # @param json_object [String] + # @return [Merge::Accounting::PaginatedGeneralLedgerTransactionList] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + next_ = parsed_json["next"] + previous = parsed_json["previous"] + results = parsed_json["results"]&.map do |item| + item = item.to_json + Merge::Accounting::GeneralLedgerTransaction.from_json(json_object: item) + end + new( + next_: next_, + previous: previous, + results: results, + additional_properties: struct + ) + end + + # Serialize an instance of PaginatedGeneralLedgerTransactionList to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.") + obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.") + obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/paginated_remote_field_class_list.rb b/lib/merge_ruby_client/accounting/types/paginated_remote_field_class_list.rb new file mode 100644 index 00000000..a682e848 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/paginated_remote_field_class_list.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require_relative "remote_field_class" +require "ostruct" +require "json" + +module Merge + module Accounting + class PaginatedRemoteFieldClassList + # @return [String] + attr_reader :next_ + # @return [String] + attr_reader :previous + # @return [Array] + attr_reader :results + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param next_ [String] + # @param previous [String] + # @param results [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil) + @next_ = next_ if next_ != OMIT + @previous = previous if previous != OMIT + @results = results if results != OMIT + @additional_properties = additional_properties + @_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of PaginatedRemoteFieldClassList + # + # @param json_object [String] + # @return [Merge::Accounting::PaginatedRemoteFieldClassList] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + next_ = parsed_json["next"] + previous = parsed_json["previous"] + results = parsed_json["results"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldClass.from_json(json_object: item) + end + new( + next_: next_, + previous: previous, + results: results, + additional_properties: struct + ) + end + + # Serialize an instance of PaginatedRemoteFieldClassList to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.") + obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.") + obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/patched_payment_request.rb b/lib/merge_ruby_client/accounting/types/patched_payment_request.rb index c3fa02cf..9e0621c2 100644 --- a/lib/merge_ruby_client/accounting/types/patched_payment_request.rb +++ b/lib/merge_ruby_client/accounting/types/patched_payment_request.rb @@ -3,12 +3,13 @@ require "date" require_relative "patched_payment_request_contact" require_relative "patched_payment_request_account" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "patched_payment_request_company" require_relative "payment_type_enum" require_relative "patched_payment_request_tracking_categories_item" require_relative "patched_payment_request_accounting_period" require_relative "patched_payment_request_applied_to_lines_item" +require_relative "remote_field_request" require "ostruct" require "json" @@ -27,7 +28,7 @@ class PatchedPaymentRequest attr_reader :contact # @return [Merge::Accounting::PatchedPaymentRequestAccount] The supplier’s or customer’s account in which the payment is made. attr_reader :account - # @return [Merge::Accounting::CurrencyEnum] The payment's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The payment's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -355,6 +356,8 @@ class PatchedPaymentRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -366,7 +369,7 @@ class PatchedPaymentRequest # @param transaction_date [DateTime] The payment's transaction date. # @param contact [Merge::Accounting::PatchedPaymentRequestContact] The supplier, or customer involved in the payment. # @param account [Merge::Accounting::PatchedPaymentRequestAccount] The supplier’s or customer’s account in which the payment is made. - # @param currency [Merge::Accounting::CurrencyEnum] The payment's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The payment's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -684,10 +687,11 @@ class PatchedPaymentRequest # @param applied_to_lines [Array] A list of “Payment Applied to Lines” objects. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PatchedPaymentRequest] def initialize(transaction_date: OMIT, contact: OMIT, account: OMIT, currency: OMIT, exchange_rate: OMIT, - company: OMIT, total_amount: OMIT, type: OMIT, tracking_categories: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + company: OMIT, total_amount: OMIT, type: OMIT, tracking_categories: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @transaction_date = transaction_date if transaction_date != OMIT @contact = contact if contact != OMIT @account = account if account != OMIT @@ -701,6 +705,7 @@ def initialize(transaction_date: OMIT, contact: OMIT, account: OMIT, currency: O @applied_to_lines = applied_to_lines if applied_to_lines != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "transaction_date": transaction_date, @@ -715,7 +720,8 @@ def initialize(transaction_date: OMIT, contact: OMIT, account: OMIT, currency: O "accounting_period": accounting_period, "applied_to_lines": applied_to_lines, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -767,6 +773,10 @@ def self.from_json(json_object:) end integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( transaction_date: transaction_date, contact: contact, @@ -781,6 +791,7 @@ def self.from_json(json_object:) applied_to_lines: applied_to_lines, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -802,7 +813,7 @@ def self.validate_raw(obj:) obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") obj.contact.nil? || Merge::Accounting::PatchedPaymentRequestContact.validate_raw(obj: obj.contact) obj.account.nil? || Merge::Accounting::PatchedPaymentRequestAccount.validate_raw(obj: obj.account) - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::PatchedPaymentRequestCompany.validate_raw(obj: obj.company) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") @@ -812,6 +823,7 @@ def self.validate_raw(obj:) obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/patched_payment_request_applied_to_lines_item.rb b/lib/merge_ruby_client/accounting/types/patched_payment_request_applied_to_lines_item.rb index 6a1d2cd7..5eec3d2f 100644 --- a/lib/merge_ruby_client/accounting/types/patched_payment_request_applied_to_lines_item.rb +++ b/lib/merge_ruby_client/accounting/types/patched_payment_request_applied_to_lines_item.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "json" -require_relative "payment_line_item" +require_relative "payment_line_item_request" module Merge module Accounting @@ -22,8 +22,8 @@ def self.from_json(json_object:) # noop end begin - Merge::Accounting::PaymentLineItem.validate_raw(obj: struct) - return Merge::Accounting::PaymentLineItem.from_json(json_object: struct) unless struct.nil? + Merge::Accounting::PaymentLineItemRequest.validate_raw(obj: struct) + return Merge::Accounting::PaymentLineItemRequest.from_json(json_object: struct) unless struct.nil? return nil rescue StandardError @@ -45,7 +45,7 @@ def self.validate_raw(obj:) # noop end begin - return Merge::Accounting::PaymentLineItem.validate_raw(obj: obj) + return Merge::Accounting::PaymentLineItemRequest.validate_raw(obj: obj) rescue StandardError # noop end diff --git a/lib/merge_ruby_client/accounting/types/payment.rb b/lib/merge_ruby_client/accounting/types/payment.rb index fcbc78b2..e70813ff 100644 --- a/lib/merge_ruby_client/accounting/types/payment.rb +++ b/lib/merge_ruby_client/accounting/types/payment.rb @@ -3,13 +3,14 @@ require "date" require_relative "payment_contact" require_relative "payment_account" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "payment_company" require_relative "payment_type_enum" require_relative "payment_tracking_categories_item" require_relative "payment_accounting_period" require_relative "payment_applied_to_lines_item" require_relative "remote_data" +require_relative "remote_field" require "ostruct" require "json" @@ -36,7 +37,7 @@ class Payment attr_reader :contact # @return [Merge::Accounting::PaymentAccount] The supplier’s or customer’s account in which the payment is made. attr_reader :account - # @return [Merge::Accounting::CurrencyEnum] The payment's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The payment's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -356,19 +357,23 @@ class Payment attr_reader :type # @return [Array] attr_reader :tracking_categories - # @return [DateTime] When the third party's payment entry was updated. - attr_reader :remote_updated_at - # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. - attr_reader :remote_was_deleted # @return [Merge::Accounting::PaymentAccountingPeriod] The accounting period that the Payment was generated in. attr_reader :accounting_period # @return [Array] A list of “Payment Applied to Lines” objects. attr_reader :applied_to_lines + # @return [DateTime] When the third party's payment entry was updated. + attr_reader :remote_updated_at + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings # @return [Array] attr_reader :remote_data + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -384,7 +389,7 @@ class Payment # @param transaction_date [DateTime] The payment's transaction date. # @param contact [Merge::Accounting::PaymentContact] The supplier, or customer involved in the payment. # @param account [Merge::Accounting::PaymentAccount] The supplier’s or customer’s account in which the payment is made. - # @param currency [Merge::Accounting::CurrencyEnum] The payment's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The payment's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -698,17 +703,20 @@ class Payment # - `ACCOUNTS_PAYABLE` - ACCOUNTS_PAYABLE # - `ACCOUNTS_RECEIVABLE` - ACCOUNTS_RECEIVABLE # @param tracking_categories [Array] - # @param remote_updated_at [DateTime] When the third party's payment entry was updated. - # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. # @param accounting_period [Merge::Accounting::PaymentAccountingPeriod] The accounting period that the Payment was generated in. # @param applied_to_lines [Array] A list of “Payment Applied to Lines” objects. + # @param remote_updated_at [DateTime] When the third party's payment entry was updated. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Payment] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, transaction_date: OMIT, - contact: OMIT, account: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, total_amount: OMIT, type: OMIT, tracking_categories: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + contact: OMIT, account: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, total_amount: OMIT, type: OMIT, tracking_categories: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -722,12 +730,13 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @total_amount = total_amount if total_amount != OMIT @type = type if type != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT - @remote_updated_at = remote_updated_at if remote_updated_at != OMIT - @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @accounting_period = accounting_period if accounting_period != OMIT @applied_to_lines = applied_to_lines if applied_to_lines != OMIT + @remote_updated_at = remote_updated_at if remote_updated_at != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -743,12 +752,13 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "total_amount": total_amount, "type": type, "tracking_categories": tracking_categories, - "remote_updated_at": remote_updated_at, - "remote_was_deleted": remote_was_deleted, "accounting_period": accounting_period, "applied_to_lines": applied_to_lines, + "remote_updated_at": remote_updated_at, + "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, - "remote_data": remote_data + "remote_data": remote_data, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -792,10 +802,6 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::PaymentTrackingCategoriesItem.from_json(json_object: item) end - remote_updated_at = unless parsed_json["remote_updated_at"].nil? - DateTime.parse(parsed_json["remote_updated_at"]) - end - remote_was_deleted = parsed_json["remote_was_deleted"] if parsed_json["accounting_period"].nil? accounting_period = nil else @@ -806,11 +812,19 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::PaymentAppliedToLinesItem.from_json(json_object: item) end + remote_updated_at = unless parsed_json["remote_updated_at"].nil? + DateTime.parse(parsed_json["remote_updated_at"]) + end + remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| item = item.to_json Merge::Accounting::RemoteData.from_json(json_object: item) end + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -825,12 +839,13 @@ def self.from_json(json_object:) total_amount: total_amount, type: type, tracking_categories: tracking_categories, - remote_updated_at: remote_updated_at, - remote_was_deleted: remote_was_deleted, accounting_period: accounting_period, applied_to_lines: applied_to_lines, + remote_updated_at: remote_updated_at, + remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, remote_data: remote_data, + remote_fields: remote_fields, additional_properties: struct ) end @@ -856,18 +871,19 @@ def self.validate_raw(obj:) obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") obj.contact.nil? || Merge::Accounting::PaymentContact.validate_raw(obj: obj.contact) obj.account.nil? || Merge::Accounting::PaymentAccount.validate_raw(obj: obj.account) - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::PaymentCompany.validate_raw(obj: obj.company) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") obj.type&.is_a?(Merge::Accounting::PaymentTypeEnum) != false || raise("Passed value for field obj.type is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") - obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") - obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.accounting_period.nil? || Merge::Accounting::PaymentAccountingPeriod.validate_raw(obj: obj.accounting_period) obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") + obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/payment_line_item_request.rb b/lib/merge_ruby_client/accounting/types/payment_line_item_request.rb index 46a12221..77dac276 100644 --- a/lib/merge_ruby_client/accounting/types/payment_line_item_request.rb +++ b/lib/merge_ruby_client/accounting/types/payment_line_item_request.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "date" +require_relative "remote_field_request" require "ostruct" require "json" @@ -30,6 +31,8 @@ class PaymentLineItemRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -46,10 +49,11 @@ class PaymentLineItemRequest # include: INVOICE, JOURNAL_ENTRY, or CREDIT_NOTE. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PaymentLineItemRequest] def initialize(remote_id: OMIT, applied_amount: OMIT, applied_date: OMIT, related_object_id: OMIT, - related_object_type: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + related_object_type: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @remote_id = remote_id if remote_id != OMIT @applied_amount = applied_amount if applied_amount != OMIT @applied_date = applied_date if applied_date != OMIT @@ -57,6 +61,7 @@ def initialize(remote_id: OMIT, applied_amount: OMIT, applied_date: OMIT, relate @related_object_type = related_object_type if related_object_type != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "remote_id": remote_id, @@ -65,7 +70,8 @@ def initialize(remote_id: OMIT, applied_amount: OMIT, applied_date: OMIT, relate "related_object_id": related_object_id, "related_object_type": related_object_type, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -85,6 +91,10 @@ def self.from_json(json_object:) related_object_type = parsed_json["related_object_type"] integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( remote_id: remote_id, applied_amount: applied_amount, @@ -93,6 +103,7 @@ def self.from_json(json_object:) related_object_type: related_object_type, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -118,6 +129,7 @@ def self.validate_raw(obj:) obj.related_object_type&.is_a?(String) != false || raise("Passed value for field obj.related_object_type is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/payment_request.rb b/lib/merge_ruby_client/accounting/types/payment_request.rb index de029778..6643da1d 100644 --- a/lib/merge_ruby_client/accounting/types/payment_request.rb +++ b/lib/merge_ruby_client/accounting/types/payment_request.rb @@ -3,12 +3,13 @@ require "date" require_relative "payment_request_contact" require_relative "payment_request_account" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "payment_request_company" require_relative "payment_type_enum" require_relative "payment_request_tracking_categories_item" require_relative "payment_request_accounting_period" require_relative "payment_request_applied_to_lines_item" +require_relative "remote_field_request" require "ostruct" require "json" @@ -27,7 +28,7 @@ class PaymentRequest attr_reader :contact # @return [Merge::Accounting::PaymentRequestAccount] The supplier’s or customer’s account in which the payment is made. attr_reader :account - # @return [Merge::Accounting::CurrencyEnum] The payment's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The payment's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -355,6 +356,8 @@ class PaymentRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -366,7 +369,7 @@ class PaymentRequest # @param transaction_date [DateTime] The payment's transaction date. # @param contact [Merge::Accounting::PaymentRequestContact] The supplier, or customer involved in the payment. # @param account [Merge::Accounting::PaymentRequestAccount] The supplier’s or customer’s account in which the payment is made. - # @param currency [Merge::Accounting::CurrencyEnum] The payment's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The payment's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -684,10 +687,11 @@ class PaymentRequest # @param applied_to_lines [Array] A list of “Payment Applied to Lines” objects. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PaymentRequest] def initialize(transaction_date: OMIT, contact: OMIT, account: OMIT, currency: OMIT, exchange_rate: OMIT, - company: OMIT, total_amount: OMIT, type: OMIT, tracking_categories: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + company: OMIT, total_amount: OMIT, type: OMIT, tracking_categories: OMIT, accounting_period: OMIT, applied_to_lines: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @transaction_date = transaction_date if transaction_date != OMIT @contact = contact if contact != OMIT @account = account if account != OMIT @@ -701,6 +705,7 @@ def initialize(transaction_date: OMIT, contact: OMIT, account: OMIT, currency: O @applied_to_lines = applied_to_lines if applied_to_lines != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "transaction_date": transaction_date, @@ -715,7 +720,8 @@ def initialize(transaction_date: OMIT, contact: OMIT, account: OMIT, currency: O "accounting_period": accounting_period, "applied_to_lines": applied_to_lines, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -767,6 +773,10 @@ def self.from_json(json_object:) end integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( transaction_date: transaction_date, contact: contact, @@ -781,6 +791,7 @@ def self.from_json(json_object:) applied_to_lines: applied_to_lines, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -802,7 +813,7 @@ def self.validate_raw(obj:) obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") obj.contact.nil? || Merge::Accounting::PaymentRequestContact.validate_raw(obj: obj.contact) obj.account.nil? || Merge::Accounting::PaymentRequestAccount.validate_raw(obj: obj.account) - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::PaymentRequestCompany.validate_raw(obj: obj.company) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") @@ -812,6 +823,7 @@ def self.validate_raw(obj:) obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/purchase_order.rb b/lib/merge_ruby_client/accounting/types/purchase_order.rb index 0badc978..5c0bfa69 100644 --- a/lib/merge_ruby_client/accounting/types/purchase_order.rb +++ b/lib/merge_ruby_client/accounting/types/purchase_order.rb @@ -5,11 +5,12 @@ require_relative "purchase_order_delivery_address" require_relative "purchase_order_vendor" require_relative "purchase_order_company" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "purchase_order_line_item" require_relative "purchase_order_tracking_categories_item" require_relative "purchase_order_accounting_period" require_relative "remote_data" +require_relative "remote_field" require "ostruct" require "json" @@ -23,7 +24,7 @@ module Accounting # A `PurchaseOrder` is a crucial component of the procurement process, but does # not typically result in any impact on the company’s general ledger. The general # ledger is typically only affected when the `PurchaseOrder` is fulfilled as an - # _Accounts Payable_ Invoice object. + # _Accounts Payable_ `Invoice` object (also known as a Bill). # ### Usage Example # Fetch from the `LIST PurchaseOrders` endpoint and view a company's purchase # orders. @@ -61,7 +62,7 @@ class PurchaseOrder attr_reader :company # @return [Float] The purchase order's total amount. attr_reader :total_amount - # @return [Merge::Accounting::CurrencyEnum] The purchase order's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The purchase order's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -373,21 +374,28 @@ class PurchaseOrder attr_reader :exchange_rate # @return [Array] attr_reader :line_items + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Array] attr_reader :tracking_categories + # @return [Merge::Accounting::PurchaseOrderAccountingPeriod] The accounting period that the PurchaseOrder was generated in. + attr_reader :accounting_period # @return [DateTime] When the third party's purchase order note was created. attr_reader :remote_created_at # @return [DateTime] When the third party's purchase order note was updated. attr_reader :remote_updated_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted - # @return [Merge::Accounting::PurchaseOrderAccountingPeriod] The accounting period that the PurchaseOrder was generated in. - attr_reader :accounting_period # @return [Hash{String => Object}] attr_reader :field_mappings # @return [Array] attr_reader :remote_data + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -415,7 +423,7 @@ class PurchaseOrder # @param memo [String] A memo attached to the purchase order. # @param company [Merge::Accounting::PurchaseOrderCompany] The company the purchase order belongs to. # @param total_amount [Float] The purchase order's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The purchase order's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The purchase order's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -724,18 +732,23 @@ class PurchaseOrder # - `ZWL` - Zimbabwean Dollar (2009) # @param exchange_rate [String] The purchase order's exchange rate. # @param line_items [Array] + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param tracking_categories [Array] + # @param accounting_period [Merge::Accounting::PurchaseOrderAccountingPeriod] The accounting period that the PurchaseOrder was generated in. # @param remote_created_at [DateTime] When the third party's purchase order note was created. # @param remote_updated_at [DateTime] When the third party's purchase order note was updated. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. - # @param accounting_period [Merge::Accounting::PurchaseOrderAccountingPeriod] The accounting period that the PurchaseOrder was generated in. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PurchaseOrder] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, status: OMIT, issue_date: OMIT, - purchase_order_number: OMIT, delivery_date: OMIT, delivery_address: OMIT, customer: OMIT, vendor: OMIT, memo: OMIT, company: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, line_items: OMIT, tracking_categories: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + purchase_order_number: OMIT, delivery_date: OMIT, delivery_address: OMIT, customer: OMIT, vendor: OMIT, memo: OMIT, company: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, line_items: OMIT, inclusive_of_tax: OMIT, tracking_categories: OMIT, accounting_period: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -753,13 +766,15 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, s @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @line_items = line_items if line_items != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT + @accounting_period = accounting_period if accounting_period != OMIT @remote_created_at = remote_created_at if remote_created_at != OMIT @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT - @accounting_period = accounting_period if accounting_period != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -779,13 +794,15 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, s "currency": currency, "exchange_rate": exchange_rate, "line_items": line_items, + "inclusive_of_tax": inclusive_of_tax, "tracking_categories": tracking_categories, + "accounting_period": accounting_period, "remote_created_at": remote_created_at, "remote_updated_at": remote_updated_at, "remote_was_deleted": remote_was_deleted, - "accounting_period": accounting_period, "field_mappings": field_mappings, - "remote_data": remote_data + "remote_data": remote_data, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -833,10 +850,17 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::PurchaseOrderLineItem.from_json(json_object: item) end + inclusive_of_tax = parsed_json["inclusive_of_tax"] tracking_categories = parsed_json["tracking_categories"]&.map do |item| item = item.to_json Merge::Accounting::PurchaseOrderTrackingCategoriesItem.from_json(json_object: item) end + if parsed_json["accounting_period"].nil? + accounting_period = nil + else + accounting_period = parsed_json["accounting_period"].to_json + accounting_period = Merge::Accounting::PurchaseOrderAccountingPeriod.from_json(json_object: accounting_period) + end remote_created_at = unless parsed_json["remote_created_at"].nil? DateTime.parse(parsed_json["remote_created_at"]) end @@ -844,17 +868,15 @@ def self.from_json(json_object:) DateTime.parse(parsed_json["remote_updated_at"]) end remote_was_deleted = parsed_json["remote_was_deleted"] - if parsed_json["accounting_period"].nil? - accounting_period = nil - else - accounting_period = parsed_json["accounting_period"].to_json - accounting_period = Merge::Accounting::PurchaseOrderAccountingPeriod.from_json(json_object: accounting_period) - end field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| item = item.to_json Merge::Accounting::RemoteData.from_json(json_object: item) end + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -873,13 +895,15 @@ def self.from_json(json_object:) currency: currency, exchange_rate: exchange_rate, line_items: line_items, + inclusive_of_tax: inclusive_of_tax, tracking_categories: tracking_categories, + accounting_period: accounting_period, remote_created_at: remote_created_at, remote_updated_at: remote_updated_at, remote_was_deleted: remote_was_deleted, - accounting_period: accounting_period, field_mappings: field_mappings, remote_data: remote_data, + remote_fields: remote_fields, additional_properties: struct ) end @@ -912,16 +936,18 @@ def self.validate_raw(obj:) obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::PurchaseOrderCompany.validate_raw(obj: obj.company) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.line_items&.is_a?(Array) != false || raise("Passed value for field obj.line_items is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.accounting_period.nil? || Merge::Accounting::PurchaseOrderAccountingPeriod.validate_raw(obj: obj.accounting_period) obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") - obj.accounting_period.nil? || Merge::Accounting::PurchaseOrderAccountingPeriod.validate_raw(obj: obj.accounting_period) obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb b/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb index 1dde1172..7d5d7062 100644 --- a/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb +++ b/lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb @@ -2,7 +2,8 @@ require "date" require_relative "purchase_order_line_item_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" +require_relative "remote_field" require "ostruct" require "json" @@ -42,7 +43,7 @@ class PurchaseOrderLineItem attr_reader :tax_amount # @return [String] The purchase order line item's total amount. attr_reader :total_line_amount - # @return [Merge::Accounting::CurrencyEnum] The purchase order line item's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The purchase order line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -350,13 +351,19 @@ class PurchaseOrderLineItem # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) attr_reader :currency + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [String] The purchase order line item's exchange rate. attr_reader :exchange_rate # @return [String] The company the purchase order line item belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -378,7 +385,7 @@ class PurchaseOrderLineItem # @param tracking_categories [Array] The purchase order line item's associated tracking categories. # @param tax_amount [String] The purchase order line item's tax amount. # @param total_line_amount [String] The purchase order line item's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The purchase order line item's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The purchase order line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -685,14 +692,18 @@ class PurchaseOrderLineItem # - `ZWD` - Zimbabwean Dollar (1980–2008) # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) + # @param tax_rate [String] The tax rate that applies to this line item. # @param exchange_rate [String] The purchase order line item's exchange rate. # @param company [String] The company the purchase order line item belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PurchaseOrderLineItem] - def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, description: OMIT, - unit_price: OMIT, quantity: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tax_amount: OMIT, total_line_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, description: OMIT, + unit_price: OMIT, quantity: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tracking_categories: OMIT, tax_amount: OMIT, total_line_amount: OMIT, currency: OMIT, tax_rate: OMIT, exchange_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -703,13 +714,15 @@ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT @item = item if item != OMIT @account = account if account != OMIT @tracking_category = tracking_category if tracking_category != OMIT - @tracking_categories = tracking_categories + @tracking_categories = tracking_categories if tracking_categories != OMIT @tax_amount = tax_amount if tax_amount != OMIT @total_line_amount = total_line_amount if total_line_amount != OMIT @currency = currency if currency != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @company = company if company != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -726,9 +739,11 @@ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT "tax_amount": tax_amount, "total_line_amount": total_line_amount, "currency": currency, + "tax_rate": tax_rate, "exchange_rate": exchange_rate, "company": company, - "remote_was_deleted": remote_was_deleted + "remote_was_deleted": remote_was_deleted, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -760,9 +775,14 @@ def self.from_json(json_object:) tax_amount = parsed_json["tax_amount"] total_line_amount = parsed_json["total_line_amount"] currency = parsed_json["currency"] + tax_rate = parsed_json["tax_rate"] exchange_rate = parsed_json["exchange_rate"] company = parsed_json["company"] remote_was_deleted = parsed_json["remote_was_deleted"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteField.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -778,9 +798,11 @@ def self.from_json(json_object:) tax_amount: tax_amount, total_line_amount: total_line_amount, currency: currency, + tax_rate: tax_rate, exchange_rate: exchange_rate, company: company, remote_was_deleted: remote_was_deleted, + remote_fields: remote_fields, additional_properties: struct ) end @@ -809,13 +831,15 @@ def self.validate_raw(obj:) obj.item.nil? || Merge::Accounting::PurchaseOrderLineItemItem.validate_raw(obj: obj.item) obj.account&.is_a?(String) != false || raise("Passed value for field obj.account is not the expected type, validation failed.") obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") - obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.tax_amount&.is_a?(String) != false || raise("Passed value for field obj.tax_amount is not the expected type, validation failed.") obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/purchase_order_line_item_request.rb b/lib/merge_ruby_client/accounting/types/purchase_order_line_item_request.rb index 27f7ad8c..ae223260 100644 --- a/lib/merge_ruby_client/accounting/types/purchase_order_line_item_request.rb +++ b/lib/merge_ruby_client/accounting/types/purchase_order_line_item_request.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true require_relative "purchase_order_line_item_request_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" +require_relative "remote_field_request" require "ostruct" require "json" @@ -35,7 +36,7 @@ class PurchaseOrderLineItemRequest attr_reader :tax_amount # @return [String] The purchase order line item's total amount. attr_reader :total_line_amount - # @return [Merge::Accounting::CurrencyEnum] The purchase order line item's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The purchase order line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -343,6 +344,8 @@ class PurchaseOrderLineItemRequest # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) attr_reader :currency + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [String] The purchase order line item's exchange rate. attr_reader :exchange_rate # @return [String] The company the purchase order line item belongs to. @@ -351,6 +354,8 @@ class PurchaseOrderLineItemRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -369,7 +374,7 @@ class PurchaseOrderLineItemRequest # @param tracking_categories [Array] The purchase order line item's associated tracking categories. # @param tax_amount [String] The purchase order line item's tax amount. # @param total_line_amount [String] The purchase order line item's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The purchase order line item's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The purchase order line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -676,14 +681,16 @@ class PurchaseOrderLineItemRequest # - `ZWD` - Zimbabwean Dollar (1980–2008) # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) + # @param tax_rate [String] The tax rate that applies to this line item. # @param exchange_rate [String] The purchase order line item's exchange rate. # @param company [String] The company the purchase order line item belongs to. # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PurchaseOrderLineItemRequest] - def initialize(tracking_categories:, remote_id: OMIT, description: OMIT, unit_price: OMIT, quantity: OMIT, item: OMIT, account: OMIT, - tracking_category: OMIT, tax_amount: OMIT, total_line_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + def initialize(remote_id: OMIT, description: OMIT, unit_price: OMIT, quantity: OMIT, item: OMIT, account: OMIT, + tracking_category: OMIT, tracking_categories: OMIT, tax_amount: OMIT, total_line_amount: OMIT, currency: OMIT, tax_rate: OMIT, exchange_rate: OMIT, company: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @remote_id = remote_id if remote_id != OMIT @description = description if description != OMIT @unit_price = unit_price if unit_price != OMIT @@ -691,14 +698,16 @@ def initialize(tracking_categories:, remote_id: OMIT, description: OMIT, unit_pr @item = item if item != OMIT @account = account if account != OMIT @tracking_category = tracking_category if tracking_category != OMIT - @tracking_categories = tracking_categories + @tracking_categories = tracking_categories if tracking_categories != OMIT @tax_amount = tax_amount if tax_amount != OMIT @total_line_amount = total_line_amount if total_line_amount != OMIT @currency = currency if currency != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @company = company if company != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "remote_id": remote_id, @@ -712,10 +721,12 @@ def initialize(tracking_categories:, remote_id: OMIT, description: OMIT, unit_pr "tax_amount": tax_amount, "total_line_amount": total_line_amount, "currency": currency, + "tax_rate": tax_rate, "exchange_rate": exchange_rate, "company": company, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -744,10 +755,15 @@ def self.from_json(json_object:) tax_amount = parsed_json["tax_amount"] total_line_amount = parsed_json["total_line_amount"] currency = parsed_json["currency"] + tax_rate = parsed_json["tax_rate"] exchange_rate = parsed_json["exchange_rate"] company = parsed_json["company"] integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( remote_id: remote_id, description: description, @@ -760,10 +776,12 @@ def self.from_json(json_object:) tax_amount: tax_amount, total_line_amount: total_line_amount, currency: currency, + tax_rate: tax_rate, exchange_rate: exchange_rate, company: company, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -789,14 +807,16 @@ def self.validate_raw(obj:) obj.item.nil? || Merge::Accounting::PurchaseOrderLineItemRequestItem.validate_raw(obj: obj.item) obj.account&.is_a?(String) != false || raise("Passed value for field obj.account is not the expected type, validation failed.") obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") - obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.tax_amount&.is_a?(String) != false || raise("Passed value for field obj.tax_amount is not the expected type, validation failed.") obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/purchase_order_request.rb b/lib/merge_ruby_client/accounting/types/purchase_order_request.rb index 2b12e044..4fc8aac0 100644 --- a/lib/merge_ruby_client/accounting/types/purchase_order_request.rb +++ b/lib/merge_ruby_client/accounting/types/purchase_order_request.rb @@ -5,9 +5,10 @@ require_relative "purchase_order_request_delivery_address" require_relative "purchase_order_request_vendor" require_relative "purchase_order_request_company" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "purchase_order_request_tracking_categories_item" require_relative "purchase_order_line_item_request" +require_relative "remote_field_request" require "ostruct" require "json" @@ -44,7 +45,7 @@ class PurchaseOrderRequest attr_reader :company # @return [Float] The purchase order's total amount. attr_reader :total_amount - # @return [Merge::Accounting::CurrencyEnum] The purchase order's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The purchase order's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -352,6 +353,9 @@ class PurchaseOrderRequest # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) attr_reader :currency + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [String] The purchase order's exchange rate. attr_reader :exchange_rate # @return [Array] @@ -362,6 +366,8 @@ class PurchaseOrderRequest attr_reader :integration_params # @return [Hash{String => Object}] attr_reader :linked_account_params + # @return [Array] + attr_reader :remote_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -384,7 +390,7 @@ class PurchaseOrderRequest # @param memo [String] A memo attached to the purchase order. # @param company [Merge::Accounting::PurchaseOrderRequestCompany] The company the purchase order belongs to. # @param total_amount [Float] The purchase order's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The purchase order's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The purchase order's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -691,15 +697,18 @@ class PurchaseOrderRequest # - `ZWD` - Zimbabwean Dollar (1980–2008) # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param exchange_rate [String] The purchase order's exchange rate. # @param tracking_categories [Array] # @param line_items [Array] # @param integration_params [Hash{String => Object}] # @param linked_account_params [Hash{String => Object}] + # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::PurchaseOrderRequest] def initialize(status: OMIT, issue_date: OMIT, delivery_date: OMIT, delivery_address: OMIT, customer: OMIT, - vendor: OMIT, memo: OMIT, company: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, tracking_categories: OMIT, line_items: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + vendor: OMIT, memo: OMIT, company: OMIT, total_amount: OMIT, currency: OMIT, inclusive_of_tax: OMIT, exchange_rate: OMIT, tracking_categories: OMIT, line_items: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @status = status if status != OMIT @issue_date = issue_date if issue_date != OMIT @delivery_date = delivery_date if delivery_date != OMIT @@ -710,11 +719,13 @@ def initialize(status: OMIT, issue_date: OMIT, delivery_date: OMIT, delivery_add @company = company if company != OMIT @total_amount = total_amount if total_amount != OMIT @currency = currency if currency != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT @line_items = line_items if line_items != OMIT @integration_params = integration_params if integration_params != OMIT @linked_account_params = linked_account_params if linked_account_params != OMIT + @remote_fields = remote_fields if remote_fields != OMIT @additional_properties = additional_properties @_field_set = { "status": status, @@ -727,11 +738,13 @@ def initialize(status: OMIT, issue_date: OMIT, delivery_date: OMIT, delivery_add "company": company, "total_amount": total_amount, "currency": currency, + "inclusive_of_tax": inclusive_of_tax, "exchange_rate": exchange_rate, "tracking_categories": tracking_categories, "line_items": line_items, "integration_params": integration_params, - "linked_account_params": linked_account_params + "linked_account_params": linked_account_params, + "remote_fields": remote_fields }.reject do |_k, v| v == OMIT end @@ -769,6 +782,7 @@ def self.from_json(json_object:) end total_amount = parsed_json["total_amount"] currency = parsed_json["currency"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] exchange_rate = parsed_json["exchange_rate"] tracking_categories = parsed_json["tracking_categories"]&.map do |item| item = item.to_json @@ -780,6 +794,10 @@ def self.from_json(json_object:) end integration_params = parsed_json["integration_params"] linked_account_params = parsed_json["linked_account_params"] + remote_fields = parsed_json["remote_fields"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldRequest.from_json(json_object: item) + end new( status: status, issue_date: issue_date, @@ -791,11 +809,13 @@ def self.from_json(json_object:) company: company, total_amount: total_amount, currency: currency, + inclusive_of_tax: inclusive_of_tax, exchange_rate: exchange_rate, tracking_categories: tracking_categories, line_items: line_items, integration_params: integration_params, linked_account_params: linked_account_params, + remote_fields: remote_fields, additional_properties: struct ) end @@ -823,12 +843,14 @@ def self.validate_raw(obj:) obj.memo&.is_a?(String) != false || raise("Passed value for field obj.memo is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::PurchaseOrderRequestCompany.validate_raw(obj: obj.company) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.line_items&.is_a?(Array) != false || raise("Passed value for field obj.line_items is not the expected type, validation failed.") obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/remote_data.rb b/lib/merge_ruby_client/accounting/types/remote_data.rb index 224c864b..2e2cf440 100644 --- a/lib/merge_ruby_client/accounting/types/remote_data.rb +++ b/lib/merge_ruby_client/accounting/types/remote_data.rb @@ -5,8 +5,14 @@ module Merge module Accounting + # # The RemoteData Object + # ### Description + # The `RemoteData` object is used to represent the full data pulled from the + # third-party API for an object. + # ### Usage Example + # TODO class RemoteData - # @return [String] + # @return [String] The third-party API path that is being called. attr_reader :path # @return [Object] attr_reader :data @@ -18,7 +24,7 @@ class RemoteData OMIT = Object.new - # @param path [String] + # @param path [String] The third-party API path that is being called. # @param data [Object] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::RemoteData] diff --git a/lib/merge_ruby_client/accounting/types/remote_field.rb b/lib/merge_ruby_client/accounting/types/remote_field.rb new file mode 100644 index 00000000..6aef9b07 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/remote_field.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require_relative "remote_field_class" +require "ostruct" +require "json" + +module Merge + module Accounting + class RemoteField + # @return [Merge::Accounting::RemoteFieldClass] + attr_reader :remote_field_class + # @return [Hash{String => Object}] + attr_reader :value + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_field_class [Merge::Accounting::RemoteFieldClass] + # @param value [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::RemoteField] + def initialize(remote_field_class:, value: OMIT, additional_properties: nil) + @remote_field_class = remote_field_class + @value = value if value != OMIT + @additional_properties = additional_properties + @_field_set = { "remote_field_class": remote_field_class, "value": value }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of RemoteField + # + # @param json_object [String] + # @return [Merge::Accounting::RemoteField] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["remote_field_class"].nil? + remote_field_class = nil + else + remote_field_class = parsed_json["remote_field_class"].to_json + remote_field_class = Merge::Accounting::RemoteFieldClass.from_json(json_object: remote_field_class) + end + value = parsed_json["value"] + new( + remote_field_class: remote_field_class, + value: value, + additional_properties: struct + ) + end + + # Serialize an instance of RemoteField to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + Merge::Accounting::RemoteFieldClass.validate_raw(obj: obj.remote_field_class) + obj.value&.is_a?(Hash) != false || raise("Passed value for field obj.value is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/remote_field_api.rb b/lib/merge_ruby_client/accounting/types/remote_field_api.rb index d5a05030..320917d8 100644 --- a/lib/merge_ruby_client/accounting/types/remote_field_api.rb +++ b/lib/merge_ruby_client/accounting/types/remote_field_api.rb @@ -37,12 +37,12 @@ class RemoteFieldApi # @param coverage [Merge::Accounting::RemoteFieldApiCoverage] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::RemoteFieldApi] - def initialize(schema:, remote_key_name:, remote_endpoint_info:, example_values:, advanced_metadata: OMIT, + def initialize(schema:, remote_key_name:, remote_endpoint_info:, example_values: OMIT, advanced_metadata: OMIT, coverage: OMIT, additional_properties: nil) @schema = schema @remote_key_name = remote_key_name @remote_endpoint_info = remote_endpoint_info - @example_values = example_values + @example_values = example_values if example_values != OMIT @advanced_metadata = advanced_metadata if advanced_metadata != OMIT @coverage = coverage if coverage != OMIT @additional_properties = additional_properties @@ -114,7 +114,7 @@ def self.validate_raw(obj:) obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") Merge::Accounting::RemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) - obj.example_values.is_a?(Array) != false || raise("Passed value for field obj.example_values is not the expected type, validation failed.") + obj.example_values&.is_a?(Array) != false || raise("Passed value for field obj.example_values is not the expected type, validation failed.") obj.advanced_metadata.nil? || Merge::Accounting::AdvancedMetadata.validate_raw(obj: obj.advanced_metadata) obj.coverage.nil? || Merge::Accounting::RemoteFieldApiCoverage.validate_raw(obj: obj.coverage) end diff --git a/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb b/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb index f00b82dd..2a300588 100644 --- a/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb +++ b/lib/merge_ruby_client/accounting/types/remote_field_api_response.rb @@ -44,7 +44,13 @@ class RemoteFieldApiResponse # @return [Array] attr_reader :transaction # @return [Array] + attr_reader :accounting_period + # @return [Array] attr_reader :general_ledger_transaction + # @return [Array] + attr_reader :bank_feed_account + # @return [Array] + attr_reader :employee # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -71,11 +77,14 @@ class RemoteFieldApiResponse # @param expense [Array] # @param vendor_credit [Array] # @param transaction [Array] + # @param accounting_period [Array] # @param general_ledger_transaction [Array] + # @param bank_feed_account [Array] + # @param employee [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::RemoteFieldApiResponse] def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, cash_flow_statement: OMIT, - company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, general_ledger_transaction: OMIT, additional_properties: nil) + company_info: OMIT, contact: OMIT, income_statement: OMIT, credit_note: OMIT, item: OMIT, purchase_order: OMIT, tracking_category: OMIT, journal_entry: OMIT, tax_rate: OMIT, invoice: OMIT, payment: OMIT, expense: OMIT, vendor_credit: OMIT, transaction: OMIT, accounting_period: OMIT, general_ledger_transaction: OMIT, bank_feed_account: OMIT, employee: OMIT, additional_properties: nil) @account = account if account != OMIT @accounting_attachment = accounting_attachment if accounting_attachment != OMIT @balance_sheet = balance_sheet if balance_sheet != OMIT @@ -94,7 +103,10 @@ def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, @expense = expense if expense != OMIT @vendor_credit = vendor_credit if vendor_credit != OMIT @transaction = transaction if transaction != OMIT + @accounting_period = accounting_period if accounting_period != OMIT @general_ledger_transaction = general_ledger_transaction if general_ledger_transaction != OMIT + @bank_feed_account = bank_feed_account if bank_feed_account != OMIT + @employee = employee if employee != OMIT @additional_properties = additional_properties @_field_set = { "Account": account, @@ -115,7 +127,10 @@ def initialize(account: OMIT, accounting_attachment: OMIT, balance_sheet: OMIT, "Expense": expense, "VendorCredit": vendor_credit, "Transaction": transaction, - "GeneralLedgerTransaction": general_ledger_transaction + "AccountingPeriod": accounting_period, + "GeneralLedgerTransaction": general_ledger_transaction, + "BankFeedAccount": bank_feed_account, + "Employee": employee }.reject do |_k, v| v == OMIT end @@ -200,10 +215,22 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::RemoteFieldApi.from_json(json_object: item) end + accounting_period = parsed_json["AccountingPeriod"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldApi.from_json(json_object: item) + end general_ledger_transaction = parsed_json["GeneralLedgerTransaction"]&.map do |item| item = item.to_json Merge::Accounting::RemoteFieldApi.from_json(json_object: item) end + bank_feed_account = parsed_json["BankFeedAccount"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldApi.from_json(json_object: item) + end + employee = parsed_json["Employee"]&.map do |item| + item = item.to_json + Merge::Accounting::RemoteFieldApi.from_json(json_object: item) + end new( account: account, accounting_attachment: accounting_attachment, @@ -223,7 +250,10 @@ def self.from_json(json_object:) expense: expense, vendor_credit: vendor_credit, transaction: transaction, + accounting_period: accounting_period, general_ledger_transaction: general_ledger_transaction, + bank_feed_account: bank_feed_account, + employee: employee, additional_properties: struct ) end @@ -260,7 +290,10 @@ def self.validate_raw(obj:) obj.expense&.is_a?(Array) != false || raise("Passed value for field obj.expense is not the expected type, validation failed.") obj.vendor_credit&.is_a?(Array) != false || raise("Passed value for field obj.vendor_credit is not the expected type, validation failed.") obj.transaction&.is_a?(Array) != false || raise("Passed value for field obj.transaction is not the expected type, validation failed.") + obj.accounting_period&.is_a?(Array) != false || raise("Passed value for field obj.accounting_period is not the expected type, validation failed.") obj.general_ledger_transaction&.is_a?(Array) != false || raise("Passed value for field obj.general_ledger_transaction is not the expected type, validation failed.") + obj.bank_feed_account&.is_a?(Array) != false || raise("Passed value for field obj.bank_feed_account is not the expected type, validation failed.") + obj.employee&.is_a?(Array) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/remote_field_class.rb b/lib/merge_ruby_client/accounting/types/remote_field_class.rb new file mode 100644 index 00000000..a7baaa3e --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/remote_field_class.rb @@ -0,0 +1,145 @@ +# frozen_string_literal: true + +require_relative "field_type_enum" +require_relative "field_format_enum" +require_relative "item_schema" +require "ostruct" +require "json" + +module Merge + module Accounting + class RemoteFieldClass + # @return [String] + attr_reader :id + # @return [String] + attr_reader :display_name + # @return [String] + attr_reader :remote_key_name + # @return [String] + attr_reader :description + # @return [Boolean] + attr_reader :is_custom + # @return [Boolean] + attr_reader :is_required + # @return [Merge::Accounting::FieldTypeEnum] + attr_reader :field_type + # @return [Merge::Accounting::FieldFormatEnum] + attr_reader :field_format + # @return [Array] + attr_reader :field_choices + # @return [Merge::Accounting::ItemSchema] + attr_reader :item_schema + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param display_name [String] + # @param remote_key_name [String] + # @param description [String] + # @param is_custom [Boolean] + # @param is_required [Boolean] + # @param field_type [Merge::Accounting::FieldTypeEnum] + # @param field_format [Merge::Accounting::FieldFormatEnum] + # @param field_choices [Array] + # @param item_schema [Merge::Accounting::ItemSchema] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::RemoteFieldClass] + def initialize(id: OMIT, display_name: OMIT, remote_key_name: OMIT, description: OMIT, is_custom: OMIT, + is_required: OMIT, field_type: OMIT, field_format: OMIT, field_choices: OMIT, item_schema: OMIT, additional_properties: nil) + @id = id if id != OMIT + @display_name = display_name if display_name != OMIT + @remote_key_name = remote_key_name if remote_key_name != OMIT + @description = description if description != OMIT + @is_custom = is_custom if is_custom != OMIT + @is_required = is_required if is_required != OMIT + @field_type = field_type if field_type != OMIT + @field_format = field_format if field_format != OMIT + @field_choices = field_choices if field_choices != OMIT + @item_schema = item_schema if item_schema != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "display_name": display_name, + "remote_key_name": remote_key_name, + "description": description, + "is_custom": is_custom, + "is_required": is_required, + "field_type": field_type, + "field_format": field_format, + "field_choices": field_choices, + "item_schema": item_schema + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of RemoteFieldClass + # + # @param json_object [String] + # @return [Merge::Accounting::RemoteFieldClass] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + display_name = parsed_json["display_name"] + remote_key_name = parsed_json["remote_key_name"] + description = parsed_json["description"] + is_custom = parsed_json["is_custom"] + is_required = parsed_json["is_required"] + field_type = parsed_json["field_type"] + field_format = parsed_json["field_format"] + field_choices = parsed_json["field_choices"] + if parsed_json["item_schema"].nil? + item_schema = nil + else + item_schema = parsed_json["item_schema"].to_json + item_schema = Merge::Accounting::ItemSchema.from_json(json_object: item_schema) + end + new( + id: id, + display_name: display_name, + remote_key_name: remote_key_name, + description: description, + is_custom: is_custom, + is_required: is_required, + field_type: field_type, + field_format: field_format, + field_choices: field_choices, + item_schema: item_schema, + additional_properties: struct + ) + end + + # Serialize an instance of RemoteFieldClass to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.display_name&.is_a?(String) != false || raise("Passed value for field obj.display_name is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.is_custom&.is_a?(Boolean) != false || raise("Passed value for field obj.is_custom is not the expected type, validation failed.") + obj.is_required&.is_a?(Boolean) != false || raise("Passed value for field obj.is_required is not the expected type, validation failed.") + obj.field_type&.is_a?(Merge::Accounting::FieldTypeEnum) != false || raise("Passed value for field obj.field_type is not the expected type, validation failed.") + obj.field_format&.is_a?(Merge::Accounting::FieldFormatEnum) != false || raise("Passed value for field obj.field_format is not the expected type, validation failed.") + obj.field_choices&.is_a?(Array) != false || raise("Passed value for field obj.field_choices is not the expected type, validation failed.") + obj.item_schema.nil? || Merge::Accounting::ItemSchema.validate_raw(obj: obj.item_schema) + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/remote_field_request.rb b/lib/merge_ruby_client/accounting/types/remote_field_request.rb new file mode 100644 index 00000000..f68f1b32 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/remote_field_request.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require_relative "remote_field_request_remote_field_class" +require "ostruct" +require "json" + +module Merge + module Accounting + class RemoteFieldRequest + # @return [Merge::Accounting::RemoteFieldRequestRemoteFieldClass] + attr_reader :remote_field_class + # @return [Object] + attr_reader :value + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_field_class [Merge::Accounting::RemoteFieldRequestRemoteFieldClass] + # @param value [Object] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::RemoteFieldRequest] + def initialize(remote_field_class:, value: OMIT, additional_properties: nil) + @remote_field_class = remote_field_class + @value = value if value != OMIT + @additional_properties = additional_properties + @_field_set = { "remote_field_class": remote_field_class, "value": value }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of RemoteFieldRequest + # + # @param json_object [String] + # @return [Merge::Accounting::RemoteFieldRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["remote_field_class"].nil? + remote_field_class = nil + else + remote_field_class = parsed_json["remote_field_class"].to_json + remote_field_class = Merge::Accounting::RemoteFieldRequestRemoteFieldClass.from_json(json_object: remote_field_class) + end + value = parsed_json["value"] + new( + remote_field_class: remote_field_class, + value: value, + additional_properties: struct + ) + end + + # Serialize an instance of RemoteFieldRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + Merge::Accounting::RemoteFieldRequestRemoteFieldClass.validate_raw(obj: obj.remote_field_class) + obj.value&.is_a?(Object) != false || raise("Passed value for field obj.value is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/remote_field_request_remote_field_class.rb b/lib/merge_ruby_client/accounting/types/remote_field_request_remote_field_class.rb new file mode 100644 index 00000000..8b945b9a --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/remote_field_request_remote_field_class.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "remote_field_class" + +module Merge + module Accounting + class RemoteFieldRequestRemoteFieldClass + # Deserialize a JSON object to an instance of RemoteFieldRequestRemoteFieldClass + # + # @param json_object [String] + # @return [Merge::Accounting::RemoteFieldRequestRemoteFieldClass] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::RemoteFieldClass.validate_raw(obj: struct) + return Merge::Accounting::RemoteFieldClass.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::RemoteFieldClass.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/report_item.rb b/lib/merge_ruby_client/accounting/types/report_item.rb index b6405d87..7769e1ad 100644 --- a/lib/merge_ruby_client/accounting/types/report_item.rb +++ b/lib/merge_ruby_client/accounting/types/report_item.rb @@ -28,6 +28,11 @@ class ReportItem attr_reader :sub_items # @return [String] The company the report item belongs to. attr_reader :company + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -43,10 +48,14 @@ class ReportItem # @param value [Float] The report item's value. # @param sub_items [Array Object}>] # @param company [String] The company the report item belongs to. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::ReportItem] def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, value: OMIT, sub_items: OMIT, - company: OMIT, additional_properties: nil) + company: OMIT, remote_was_deleted: OMIT, additional_properties: nil) @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @@ -54,6 +63,7 @@ def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, @value = value if value != OMIT @sub_items = sub_items if sub_items != OMIT @company = company if company != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @additional_properties = additional_properties @_field_set = { "remote_id": remote_id, @@ -62,7 +72,8 @@ def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, "name": name, "value": value, "sub_items": sub_items, - "company": company + "company": company, + "remote_was_deleted": remote_was_deleted }.reject do |_k, v| v == OMIT end @@ -82,6 +93,7 @@ def self.from_json(json_object:) value = parsed_json["value"] sub_items = parsed_json["sub_items"] company = parsed_json["company"] + remote_was_deleted = parsed_json["remote_was_deleted"] new( remote_id: remote_id, created_at: created_at, @@ -90,6 +102,7 @@ def self.from_json(json_object:) value: value, sub_items: sub_items, company: company, + remote_was_deleted: remote_was_deleted, additional_properties: struct ) end @@ -115,6 +128,7 @@ def self.validate_raw(obj:) obj.value&.is_a?(Float) != false || raise("Passed value for field obj.value is not the expected type, validation failed.") obj.sub_items&.is_a?(Array) != false || raise("Passed value for field obj.sub_items is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/status_895_enum.rb b/lib/merge_ruby_client/accounting/types/status_895_enum.rb new file mode 100644 index 00000000..96b8ba9d --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/status_895_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `ACTIVE` - ACTIVE + # - `INACTIVE` - INACTIVE + class Status895Enum + ACTIVE = "ACTIVE" + INACTIVE = "INACTIVE" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/tax_component.rb b/lib/merge_ruby_client/accounting/types/tax_component.rb new file mode 100644 index 00000000..2edd0a28 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/tax_component.rb @@ -0,0 +1,150 @@ +# frozen_string_literal: true + +require "date" +require_relative "component_type_enum" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The TaxRate Object + # ### Description + # The `TaxComponent` object is used to represent any sub-taxes that make up the + # `TaxRate`. + # ### Usage Example + # Fetch from the `LIST TaxRates` endpoint and view tax components relevant to a + # tax rate. + class TaxComponent + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [String] The tax rate’s name. + attr_reader :name + # @return [String] The tax component’s rate. + attr_reader :rate + # @return [Boolean] Returns True if the tax component is compound, False if not. + attr_reader :is_compound + # @return [Merge::Accounting::ComponentTypeEnum] Returns PURCHASE if the tax component corresponds to a purchase tax or SALES if + # the tax component corresponds to a sales tax. + # - `SALES` - SALES + # - `PURCHASE` - PURCHASE + attr_reader :component_type + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param name [String] The tax rate’s name. + # @param rate [String] The tax component’s rate. + # @param is_compound [Boolean] Returns True if the tax component is compound, False if not. + # @param component_type [Merge::Accounting::ComponentTypeEnum] Returns PURCHASE if the tax component corresponds to a purchase tax or SALES if + # the tax component corresponds to a sales tax. + # - `SALES` - SALES + # - `PURCHASE` - PURCHASE + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::TaxComponent] + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, rate: OMIT, + is_compound: OMIT, component_type: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @name = name if name != OMIT + @rate = rate if rate != OMIT + @is_compound = is_compound if is_compound != OMIT + @component_type = component_type if component_type != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "name": name, + "rate": rate, + "is_compound": is_compound, + "component_type": component_type, + "remote_was_deleted": remote_was_deleted + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of TaxComponent + # + # @param json_object [String] + # @return [Merge::Accounting::TaxComponent] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + name = parsed_json["name"] + rate = parsed_json["rate"] + is_compound = parsed_json["is_compound"] + component_type = parsed_json["component_type"] + remote_was_deleted = parsed_json["remote_was_deleted"] + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + name: name, + rate: rate, + is_compound: is_compound, + component_type: component_type, + remote_was_deleted: remote_was_deleted, + additional_properties: struct + ) + end + + # Serialize an instance of TaxComponent to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") + obj.rate&.is_a?(String) != false || raise("Passed value for field obj.rate is not the expected type, validation failed.") + obj.is_compound&.is_a?(Boolean) != false || raise("Passed value for field obj.is_compound is not the expected type, validation failed.") + obj.component_type&.is_a?(Merge::Accounting::ComponentTypeEnum) != false || raise("Passed value for field obj.component_type is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/tax_rate.rb b/lib/merge_ruby_client/accounting/types/tax_rate.rb index 058ad485..68b9d045 100644 --- a/lib/merge_ruby_client/accounting/types/tax_rate.rb +++ b/lib/merge_ruby_client/accounting/types/tax_rate.rb @@ -2,6 +2,8 @@ require "date" require_relative "tax_rate_company" +require_relative "status_7_d_1_enum" +require_relative "tax_rate_tax_components_item" require_relative "remote_data" require "ostruct" require "json" @@ -23,17 +25,33 @@ class TaxRate attr_reader :created_at # @return [DateTime] The datetime that this object was modified by Merge. attr_reader :modified_at + # @return [Merge::Accounting::TaxRateCompany] The subsidiary that the tax rate belongs to (in the case of multi-entity + # systems). + attr_reader :company + # @return [String] The tax code associated with this tax rate or group of tax rates from the + # third-party platform. + attr_reader :code + # @return [String] The tax rate’s name. + attr_reader :name # @return [String] The tax rate's description. attr_reader :description + # @return [Merge::Accounting::Status7D1Enum] The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if not + # active. + # - `ACTIVE` - ACTIVE + # - `ARCHIVED` - ARCHIVED + attr_reader :status + # @return [String] The country the tax rate is associated with. + attr_reader :country # @return [Float] The tax’s total tax rate - sum of the tax components (not compounded). attr_reader :total_tax_rate # @return [Float] The tax rate’s effective tax rate - total amount of tax with compounding. attr_reader :effective_tax_rate - # @return [Merge::Accounting::TaxRateCompany] The subsidiary that the tax rate belongs to (in the case of multi-entity - # systems). - attr_reader :company + # @return [Array] The related tax components of the tax rate. + attr_reader :tax_components # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -51,27 +69,43 @@ class TaxRate # @param remote_id [String] The third-party API ID of the matching object. # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param company [Merge::Accounting::TaxRateCompany] The subsidiary that the tax rate belongs to (in the case of multi-entity + # systems). + # @param code [String] The tax code associated with this tax rate or group of tax rates from the + # third-party platform. + # @param name [String] The tax rate’s name. # @param description [String] The tax rate's description. + # @param status [Merge::Accounting::Status7D1Enum] The tax rate’s status - `ACTIVE` if an active tax rate, `ARCHIVED` if not + # active. + # - `ACTIVE` - ACTIVE + # - `ARCHIVED` - ARCHIVED + # @param country [String] The country the tax rate is associated with. # @param total_tax_rate [Float] The tax’s total tax rate - sum of the tax components (not compounded). # @param effective_tax_rate [Float] The tax rate’s effective tax rate - total amount of tax with compounding. - # @param company [Merge::Accounting::TaxRateCompany] The subsidiary that the tax rate belongs to (in the case of multi-entity - # systems). + # @param tax_components [Array] The related tax components of the tax rate. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::TaxRate] - def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, description: OMIT, - total_tax_rate: OMIT, effective_tax_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, company: OMIT, code: OMIT, + name: OMIT, description: OMIT, status: OMIT, country: OMIT, total_tax_rate: OMIT, effective_tax_rate: OMIT, tax_components: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT + @company = company if company != OMIT + @code = code if code != OMIT + @name = name if name != OMIT @description = description if description != OMIT + @status = status if status != OMIT + @country = country if country != OMIT @total_tax_rate = total_tax_rate if total_tax_rate != OMIT @effective_tax_rate = effective_tax_rate if effective_tax_rate != OMIT - @company = company if company != OMIT + @tax_components = tax_components if tax_components != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT @@ -81,10 +115,15 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, d "remote_id": remote_id, "created_at": created_at, "modified_at": modified_at, + "company": company, + "code": code, + "name": name, "description": description, + "status": status, + "country": country, "total_tax_rate": total_tax_rate, "effective_tax_rate": effective_tax_rate, - "company": company, + "tax_components": tax_components, "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, "remote_data": remote_data @@ -104,15 +143,23 @@ def self.from_json(json_object:) remote_id = parsed_json["remote_id"] created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) - description = parsed_json["description"] - total_tax_rate = parsed_json["total_tax_rate"] - effective_tax_rate = parsed_json["effective_tax_rate"] if parsed_json["company"].nil? company = nil else company = parsed_json["company"].to_json company = Merge::Accounting::TaxRateCompany.from_json(json_object: company) end + code = parsed_json["code"] + name = parsed_json["name"] + description = parsed_json["description"] + status = parsed_json["status"] + country = parsed_json["country"] + total_tax_rate = parsed_json["total_tax_rate"] + effective_tax_rate = parsed_json["effective_tax_rate"] + tax_components = parsed_json["tax_components"]&.map do |item| + item = item.to_json + Merge::Accounting::TaxRateTaxComponentsItem.from_json(json_object: item) + end remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] remote_data = parsed_json["remote_data"]&.map do |item| @@ -124,10 +171,15 @@ def self.from_json(json_object:) remote_id: remote_id, created_at: created_at, modified_at: modified_at, + company: company, + code: code, + name: name, description: description, + status: status, + country: country, total_tax_rate: total_tax_rate, effective_tax_rate: effective_tax_rate, - company: company, + tax_components: tax_components, remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, remote_data: remote_data, @@ -153,10 +205,15 @@ def self.validate_raw(obj:) obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.company.nil? || Merge::Accounting::TaxRateCompany.validate_raw(obj: obj.company) + obj.code&.is_a?(String) != false || raise("Passed value for field obj.code is not the expected type, validation failed.") + obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.status&.is_a?(Merge::Accounting::Status7D1Enum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") + obj.country&.is_a?(String) != false || raise("Passed value for field obj.country is not the expected type, validation failed.") obj.total_tax_rate&.is_a?(Float) != false || raise("Passed value for field obj.total_tax_rate is not the expected type, validation failed.") obj.effective_tax_rate&.is_a?(Float) != false || raise("Passed value for field obj.effective_tax_rate is not the expected type, validation failed.") - obj.company.nil? || Merge::Accounting::TaxRateCompany.validate_raw(obj: obj.company) + obj.tax_components&.is_a?(Array) != false || raise("Passed value for field obj.tax_components is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/tax_rate_tax_components_item.rb b/lib/merge_ruby_client/accounting/types/tax_rate_tax_components_item.rb new file mode 100644 index 00000000..7dc6534c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/tax_rate_tax_components_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "tax_component" + +module Merge + module Accounting + class TaxRateTaxComponentsItem + # Deserialize a JSON object to an instance of TaxRateTaxComponentsItem + # + # @param json_object [String] + # @return [Merge::Accounting::TaxRateTaxComponentsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::TaxComponent.validate_raw(obj: struct) + return Merge::Accounting::TaxComponent.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::TaxComponent.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/tracking_category.rb b/lib/merge_ruby_client/accounting/types/tracking_category.rb index 63da7ab8..1aebb9e1 100644 --- a/lib/merge_ruby_client/accounting/types/tracking_category.rb +++ b/lib/merge_ruby_client/accounting/types/tracking_category.rb @@ -4,7 +4,6 @@ require_relative "status_7_d_1_enum" require_relative "category_type_enum" require_relative "tracking_category_company" -require_relative "remote_data" require "ostruct" require "json" @@ -38,17 +37,17 @@ class TrackingCategory # - `CLASS` - CLASS # - `DEPARTMENT` - DEPARTMENT attr_reader :category_type - # @return [String] ID of the parent tracking category. + # @return [String] attr_reader :parent_category - # @return [Merge::Accounting::TrackingCategoryCompany] The company the tracking category belongs to. + # @return [Merge::Accounting::TrackingCategoryCompany] The company the GeneralLedgerTransaction belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array] - attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -68,16 +67,17 @@ class TrackingCategory # @param category_type [Merge::Accounting::CategoryTypeEnum] The tracking category’s type. # - `CLASS` - CLASS # - `DEPARTMENT` - DEPARTMENT - # @param parent_category [String] ID of the parent tracking category. - # @param company [Merge::Accounting::TrackingCategoryCompany] The company the tracking category belongs to. + # @param parent_category [String] + # @param company [Merge::Accounting::TrackingCategoryCompany] The company the GeneralLedgerTransaction belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::TrackingCategory] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, status: OMIT, - category_type: OMIT, parent_category: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + category_type: OMIT, parent_category: OMIT, company: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -89,7 +89,6 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @company = company if company != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT - @remote_data = remote_data if remote_data != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -102,8 +101,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "parent_category": parent_category, "company": company, "remote_was_deleted": remote_was_deleted, - "field_mappings": field_mappings, - "remote_data": remote_data + "field_mappings": field_mappings }.reject do |_k, v| v == OMIT end @@ -132,10 +130,6 @@ def self.from_json(json_object:) end remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"]&.map do |item| - item = item.to_json - Merge::Accounting::RemoteData.from_json(json_object: item) - end new( id: id, remote_id: remote_id, @@ -148,7 +142,6 @@ def self.from_json(json_object:) company: company, remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, - remote_data: remote_data, additional_properties: struct ) end @@ -178,7 +171,6 @@ def self.validate_raw(obj:) obj.company.nil? || Merge::Accounting::TrackingCategoryCompany.validate_raw(obj: obj.company) obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") - obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/accounting/types/tracking_category_company.rb b/lib/merge_ruby_client/accounting/types/tracking_category_company.rb index a7a42376..3c27a94c 100644 --- a/lib/merge_ruby_client/accounting/types/tracking_category_company.rb +++ b/lib/merge_ruby_client/accounting/types/tracking_category_company.rb @@ -5,7 +5,7 @@ module Merge module Accounting - # The company the tracking category belongs to. + # The company the GeneralLedgerTransaction belongs to. class TrackingCategoryCompany # Deserialize a JSON object to an instance of TrackingCategoryCompany # diff --git a/lib/merge_ruby_client/accounting/types/transaction.rb b/lib/merge_ruby_client/accounting/types/transaction.rb index 1e9a162b..268d6a15 100644 --- a/lib/merge_ruby_client/accounting/types/transaction.rb +++ b/lib/merge_ruby_client/accounting/types/transaction.rb @@ -3,7 +3,7 @@ require "date" require_relative "transaction_account" require_relative "transaction_contact" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "transaction_tracking_categories_item" require_relative "transaction_line_item" require_relative "transaction_accounting_period" @@ -48,9 +48,12 @@ class Transaction attr_reader :account # @return [Merge::Accounting::TransactionContact] The contact to whom the transaction relates to. attr_reader :contact + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [String] The total amount being paid after taxes. attr_reader :total_amount - # @return [Merge::Accounting::CurrencyEnum] The transaction's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The transaction's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -367,7 +370,9 @@ class Transaction # @return [Array] attr_reader :line_items # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Merge::Accounting::TransactionAccountingPeriod] The accounting period that the Transaction was generated in. attr_reader :accounting_period @@ -393,8 +398,10 @@ class Transaction # @param transaction_date [DateTime] The date upon which the transaction occurred. # @param account [Merge::Accounting::TransactionAccount] The transaction's account. # @param contact [Merge::Accounting::TransactionContact] The contact to whom the transaction relates to. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param total_amount [String] The total amount being paid after taxes. - # @param currency [Merge::Accounting::CurrencyEnum] The transaction's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The transaction's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -706,14 +713,16 @@ class Transaction # @param tracking_categories [Array] # @param line_items [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param accounting_period [Merge::Accounting::TransactionAccountingPeriod] The accounting period that the Transaction was generated in. # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::Transaction] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, transaction_type: OMIT, - number: OMIT, transaction_date: OMIT, account: OMIT, contact: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, tracking_categories: OMIT, line_items: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + number: OMIT, transaction_date: OMIT, account: OMIT, contact: OMIT, inclusive_of_tax: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, tracking_categories: OMIT, line_items: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -723,6 +732,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t @transaction_date = transaction_date if transaction_date != OMIT @account = account if account != OMIT @contact = contact if contact != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @total_amount = total_amount if total_amount != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @@ -744,6 +754,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, t "transaction_date": transaction_date, "account": account, "contact": contact, + "inclusive_of_tax": inclusive_of_tax, "total_amount": total_amount, "currency": currency, "exchange_rate": exchange_rate, @@ -785,6 +796,7 @@ def self.from_json(json_object:) contact = parsed_json["contact"].to_json contact = Merge::Accounting::TransactionContact.from_json(json_object: contact) end + inclusive_of_tax = parsed_json["inclusive_of_tax"] total_amount = parsed_json["total_amount"] currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] @@ -819,6 +831,7 @@ def self.from_json(json_object:) transaction_date: transaction_date, account: account, contact: contact, + inclusive_of_tax: inclusive_of_tax, total_amount: total_amount, currency: currency, exchange_rate: exchange_rate, @@ -856,8 +869,9 @@ def self.validate_raw(obj:) obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") obj.account.nil? || Merge::Accounting::TransactionAccount.validate_raw(obj: obj.account) obj.contact.nil? || Merge::Accounting::TransactionContact.validate_raw(obj: obj.contact) + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.total_amount&.is_a?(String) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/currency_enum.rb b/lib/merge_ruby_client/accounting/types/transaction_currency_enum.rb similarity index 99% rename from lib/merge_ruby_client/accounting/types/currency_enum.rb rename to lib/merge_ruby_client/accounting/types/transaction_currency_enum.rb index 6c8bd564..807bd13a 100644 --- a/lib/merge_ruby_client/accounting/types/currency_enum.rb +++ b/lib/merge_ruby_client/accounting/types/transaction_currency_enum.rb @@ -308,7 +308,7 @@ module Accounting # - `ZWD` - Zimbabwean Dollar (1980–2008) # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) - class CurrencyEnum + class TransactionCurrencyEnum XUA = "XUA" AFN = "AFN" AFA = "AFA" diff --git a/lib/merge_ruby_client/accounting/types/transaction_line_item.rb b/lib/merge_ruby_client/accounting/types/transaction_line_item.rb index 69be48b5..d9a18f5e 100644 --- a/lib/merge_ruby_client/accounting/types/transaction_line_item.rb +++ b/lib/merge_ruby_client/accounting/types/transaction_line_item.rb @@ -2,7 +2,7 @@ require "date" require_relative "transaction_line_item_item" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require "ostruct" require "json" @@ -36,13 +36,13 @@ class TransactionLineItem attr_reader :account # @return [String] The line's associated tracking category. attr_reader :tracking_category - # @return [Array] The line's associated tracking categories. + # @return [Array] The transaction line item's associated tracking categories. attr_reader :tracking_categories # @return [String] The line item's total. attr_reader :total_line_amount - # @return [String] + # @return [String] The tax rate that applies to this line item. attr_reader :tax_rate - # @return [Merge::Accounting::CurrencyEnum] The line item's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -355,7 +355,9 @@ class TransactionLineItem # @return [String] The company the line belongs to. attr_reader :company # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -375,10 +377,10 @@ class TransactionLineItem # @param item [Merge::Accounting::TransactionLineItemItem] # @param account [String] The line item's account. # @param tracking_category [String] The line's associated tracking category. - # @param tracking_categories [Array] The line's associated tracking categories. + # @param tracking_categories [Array] The transaction line item's associated tracking categories. # @param total_line_amount [String] The line item's total. - # @param tax_rate [String] - # @param currency [Merge::Accounting::CurrencyEnum] The line item's currency. + # @param tax_rate [String] The tax rate that applies to this line item. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The line item's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -688,11 +690,13 @@ class TransactionLineItem # @param exchange_rate [String] The line item's exchange rate. # @param company [String] The company the line belongs to. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::TransactionLineItem] - def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, memo: OMIT, unit_price: OMIT, - quantity: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, total_line_amount: OMIT, tax_rate: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, memo: OMIT, unit_price: OMIT, + quantity: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tracking_categories: OMIT, total_line_amount: OMIT, tax_rate: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -703,7 +707,7 @@ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT @item = item if item != OMIT @account = account if account != OMIT @tracking_category = tracking_category if tracking_category != OMIT - @tracking_categories = tracking_categories + @tracking_categories = tracking_categories if tracking_categories != OMIT @total_line_amount = total_line_amount if total_line_amount != OMIT @tax_rate = tax_rate if tax_rate != OMIT @currency = currency if currency != OMIT @@ -809,10 +813,10 @@ def self.validate_raw(obj:) obj.item.nil? || Merge::Accounting::TransactionLineItemItem.validate_raw(obj: obj.item) obj.account&.is_a?(String) != false || raise("Passed value for field obj.account is not the expected type, validation failed.") obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") - obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.") obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/underlying_transaction_type_enum.rb b/lib/merge_ruby_client/accounting/types/underlying_transaction_type_enum.rb new file mode 100644 index 00000000..60f25c55 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/underlying_transaction_type_enum.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Merge + module Accounting + # - `INVOICE` - INVOICE + # - `EXPENSE` - EXPENSE + # - `TRANSACTION` - TRANSACTION + # - `JOURNAL_ENTRY` - JOURNAL_ENTRY + # - `PAYMENT` - PAYMENT + # - `VENDOR_CREDIT` - VENDOR_CREDIT + # - `CREDIT_NOTE` - CREDIT_NOTE + class UnderlyingTransactionTypeEnum + INVOICE = "INVOICE" + EXPENSE = "EXPENSE" + TRANSACTION = "TRANSACTION" + JOURNAL_ENTRY = "JOURNAL_ENTRY" + PAYMENT = "PAYMENT" + VENDOR_CREDIT = "VENDOR_CREDIT" + CREDIT_NOTE = "CREDIT_NOTE" + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit.rb b/lib/merge_ruby_client/accounting/types/vendor_credit.rb index 6007f890..d43d3d9b 100644 --- a/lib/merge_ruby_client/accounting/types/vendor_credit.rb +++ b/lib/merge_ruby_client/accounting/types/vendor_credit.rb @@ -2,10 +2,11 @@ require "date" require_relative "vendor_credit_vendor" -require_relative "currency_enum" +require_relative "transaction_currency_enum" require_relative "vendor_credit_company" require_relative "vendor_credit_line" require_relative "vendor_credit_tracking_categories_item" +require_relative "vendor_credit_apply_line_for_vendor_credit" require_relative "vendor_credit_accounting_period" require_relative "remote_data" require "ostruct" @@ -19,8 +20,8 @@ module Accounting # indicating a reduction or cancellation of the amount owed to the vendor. It is # most generally used as an adjustment note used to rectify errors, returns, or # overpayments related to a purchasing transaction. A `VendorCredit` can be - # applied to _Accounts Payable_ Invoices to decrease the overall amount of the - # Invoice. + # applied to `Accounts Payable` Invoices to decrease the overall amount of the + # `Invoice`. # ### Usage Example # Fetch from the `GET VendorCredit` endpoint and view a company's vendor credits. class VendorCredit @@ -40,7 +41,7 @@ class VendorCredit attr_reader :vendor # @return [Float] The vendor credit's total amount. attr_reader :total_amount - # @return [Merge::Accounting::CurrencyEnum] The vendor credit's currency. + # @return [Merge::Accounting::TransactionCurrencyEnum] The vendor credit's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -350,14 +351,21 @@ class VendorCredit attr_reader :currency # @return [String] The vendor credit's exchange rate. attr_reader :exchange_rate + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax # @return [Merge::Accounting::VendorCreditCompany] The company the vendor credit belongs to. attr_reader :company # @return [Array] attr_reader :lines # @return [Array] attr_reader :tracking_categories + # @return [Array] A list of VendorCredit Applied to Lines objects. + attr_reader :applied_to_lines # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Merge::Accounting::VendorCreditAccountingPeriod] The accounting period that the VendorCredit was generated in. attr_reader :accounting_period @@ -381,7 +389,7 @@ class VendorCredit # @param transaction_date [DateTime] The vendor credit's transaction date. # @param vendor [Merge::Accounting::VendorCreditVendor] The vendor that owes the gift or refund. # @param total_amount [Float] The vendor credit's total amount. - # @param currency [Merge::Accounting::CurrencyEnum] The vendor credit's currency. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The vendor credit's currency. # - `XUA` - ADB Unit of Account # - `AFN` - Afghan Afghani # - `AFA` - Afghan Afghani (1927–2002) @@ -689,18 +697,23 @@ class VendorCredit # - `ZWR` - Zimbabwean Dollar (2008) # - `ZWL` - Zimbabwean Dollar (2009) # @param exchange_rate [String] The vendor credit's exchange rate. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. # @param company [Merge::Accounting::VendorCreditCompany] The company the vendor credit belongs to. # @param lines [Array] # @param tracking_categories [Array] + # @param applied_to_lines [Array] A list of VendorCredit Applied to Lines objects. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param accounting_period [Merge::Accounting::VendorCreditAccountingPeriod] The accounting period that the VendorCredit was generated in. # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::VendorCredit] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, number: OMIT, - transaction_date: OMIT, vendor: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, company: OMIT, lines: OMIT, tracking_categories: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + transaction_date: OMIT, vendor: OMIT, total_amount: OMIT, currency: OMIT, exchange_rate: OMIT, inclusive_of_tax: OMIT, company: OMIT, lines: OMIT, tracking_categories: OMIT, applied_to_lines: OMIT, remote_was_deleted: OMIT, accounting_period: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -711,9 +724,11 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @total_amount = total_amount if total_amount != OMIT @currency = currency if currency != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT @company = company if company != OMIT @lines = lines if lines != OMIT @tracking_categories = tracking_categories if tracking_categories != OMIT + @applied_to_lines = applied_to_lines if applied_to_lines != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @accounting_period = accounting_period if accounting_period != OMIT @field_mappings = field_mappings if field_mappings != OMIT @@ -730,9 +745,11 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "total_amount": total_amount, "currency": currency, "exchange_rate": exchange_rate, + "inclusive_of_tax": inclusive_of_tax, "company": company, "lines": lines, "tracking_categories": tracking_categories, + "applied_to_lines": applied_to_lines, "remote_was_deleted": remote_was_deleted, "accounting_period": accounting_period, "field_mappings": field_mappings, @@ -764,6 +781,7 @@ def self.from_json(json_object:) total_amount = parsed_json["total_amount"] currency = parsed_json["currency"] exchange_rate = parsed_json["exchange_rate"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] if parsed_json["company"].nil? company = nil else @@ -778,6 +796,10 @@ def self.from_json(json_object:) item = item.to_json Merge::Accounting::VendorCreditTrackingCategoriesItem.from_json(json_object: item) end + applied_to_lines = parsed_json["applied_to_lines"]&.map do |item| + item = item.to_json + Merge::Accounting::VendorCreditApplyLineForVendorCredit.from_json(json_object: item) + end remote_was_deleted = parsed_json["remote_was_deleted"] if parsed_json["accounting_period"].nil? accounting_period = nil @@ -801,9 +823,11 @@ def self.from_json(json_object:) total_amount: total_amount, currency: currency, exchange_rate: exchange_rate, + inclusive_of_tax: inclusive_of_tax, company: company, lines: lines, tracking_categories: tracking_categories, + applied_to_lines: applied_to_lines, remote_was_deleted: remote_was_deleted, accounting_period: accounting_period, field_mappings: field_mappings, @@ -834,11 +858,13 @@ def self.validate_raw(obj:) obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") obj.vendor.nil? || Merge::Accounting::VendorCreditVendor.validate_raw(obj: obj.vendor) obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") - obj.currency&.is_a?(Merge::Accounting::CurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") obj.company.nil? || Merge::Accounting::VendorCreditCompany.validate_raw(obj: obj.company) obj.lines&.is_a?(Array) != false || raise("Passed value for field obj.lines is not the expected type, validation failed.") obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.accounting_period.nil? || Merge::Accounting::VendorCreditAccountingPeriod.validate_raw(obj: obj.accounting_period) obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice.rb new file mode 100644 index 00000000..27302dbb --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice.rb @@ -0,0 +1,132 @@ +# frozen_string_literal: true + +require "date" +require_relative "vendor_credit_apply_line_for_invoice_vendor_credit" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The VendorCreditApplyLine Object + # ### Description + # The `VendorCreditApplyLine` object is used to represent a applied vendor credit. + # ### Usage Example + # Fetch from the `GET VendorCredit` endpoint and view the vendor credit's applied + # to lines. + class VendorCreditApplyLineForInvoice + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Accounting::VendorCreditApplyLineForInvoiceVendorCredit] + attr_reader :vendor_credit + # @return [DateTime] Date that the vendor credit is applied to the invoice. + attr_reader :applied_date + # @return [String] The amount of the VendorCredit applied to the invoice. + attr_reader :applied_amount + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param vendor_credit [Merge::Accounting::VendorCreditApplyLineForInvoiceVendorCredit] + # @param applied_date [DateTime] Date that the vendor credit is applied to the invoice. + # @param applied_amount [String] The amount of the VendorCredit applied to the invoice. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::VendorCreditApplyLineForInvoice] + def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, vendor_credit: OMIT, applied_date: OMIT, + applied_amount: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @vendor_credit = vendor_credit if vendor_credit != OMIT + @applied_date = applied_date if applied_date != OMIT + @applied_amount = applied_amount if applied_amount != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "vendor_credit": vendor_credit, + "applied_date": applied_date, + "applied_amount": applied_amount, + "remote_was_deleted": remote_was_deleted + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of VendorCreditApplyLineForInvoice + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditApplyLineForInvoice] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["vendor_credit"].nil? + vendor_credit = nil + else + vendor_credit = parsed_json["vendor_credit"].to_json + vendor_credit = Merge::Accounting::VendorCreditApplyLineForInvoiceVendorCredit.from_json(json_object: vendor_credit) + end + applied_date = (DateTime.parse(parsed_json["applied_date"]) unless parsed_json["applied_date"].nil?) + applied_amount = parsed_json["applied_amount"] + remote_was_deleted = parsed_json["remote_was_deleted"] + new( + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + vendor_credit: vendor_credit, + applied_date: applied_date, + applied_amount: applied_amount, + remote_was_deleted: remote_was_deleted, + additional_properties: struct + ) + end + + # Serialize an instance of VendorCreditApplyLineForInvoice to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.vendor_credit.nil? || Merge::Accounting::VendorCreditApplyLineForInvoiceVendorCredit.validate_raw(obj: obj.vendor_credit) + obj.applied_date&.is_a?(DateTime) != false || raise("Passed value for field obj.applied_date is not the expected type, validation failed.") + obj.applied_amount&.is_a?(String) != false || raise("Passed value for field obj.applied_amount is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice_vendor_credit.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice_vendor_credit.rb new file mode 100644 index 00000000..0f0cec15 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice_vendor_credit.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "vendor_credit" + +module Merge + module Accounting + class VendorCreditApplyLineForInvoiceVendorCredit + # Deserialize a JSON object to an instance of + # VendorCreditApplyLineForInvoiceVendorCredit + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditApplyLineForInvoiceVendorCredit] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::VendorCredit.validate_raw(obj: struct) + return Merge::Accounting::VendorCredit.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::VendorCredit.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit.rb new file mode 100644 index 00000000..2581e3e3 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit.rb @@ -0,0 +1,132 @@ +# frozen_string_literal: true + +require "date" +require_relative "vendor_credit_apply_line_for_vendor_credit_invoice" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The VendorCreditApplyLine Object + # ### Description + # The `VendorCreditApplyLine` object is used to represent a applied vendor credit. + # ### Usage Example + # Fetch from the `GET VendorCredit` endpoint and view the vendor credit's applied + # to lines. + class VendorCreditApplyLineForVendorCredit + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCreditInvoice] + attr_reader :invoice + # @return [DateTime] Date that the vendor credit is applied to the invoice. + attr_reader :applied_date + # @return [String] The amount of the VendorCredit applied to the invoice. + attr_reader :applied_amount + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + attr_reader :remote_was_deleted + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param invoice [Merge::Accounting::VendorCreditApplyLineForVendorCreditInvoice] + # @param applied_date [DateTime] Date that the vendor credit is applied to the invoice. + # @param applied_amount [String] The amount of the VendorCredit applied to the invoice. + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCredit] + def initialize(remote_id: OMIT, created_at: OMIT, modified_at: OMIT, invoice: OMIT, applied_date: OMIT, + applied_amount: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @invoice = invoice if invoice != OMIT + @applied_date = applied_date if applied_date != OMIT + @applied_amount = applied_amount if applied_amount != OMIT + @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "invoice": invoice, + "applied_date": applied_date, + "applied_amount": applied_amount, + "remote_was_deleted": remote_was_deleted + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of VendorCreditApplyLineForVendorCredit + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCredit] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["invoice"].nil? + invoice = nil + else + invoice = parsed_json["invoice"].to_json + invoice = Merge::Accounting::VendorCreditApplyLineForVendorCreditInvoice.from_json(json_object: invoice) + end + applied_date = (DateTime.parse(parsed_json["applied_date"]) unless parsed_json["applied_date"].nil?) + applied_amount = parsed_json["applied_amount"] + remote_was_deleted = parsed_json["remote_was_deleted"] + new( + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + invoice: invoice, + applied_date: applied_date, + applied_amount: applied_amount, + remote_was_deleted: remote_was_deleted, + additional_properties: struct + ) + end + + # Serialize an instance of VendorCreditApplyLineForVendorCredit to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.invoice.nil? || Merge::Accounting::VendorCreditApplyLineForVendorCreditInvoice.validate_raw(obj: obj.invoice) + obj.applied_date&.is_a?(DateTime) != false || raise("Passed value for field obj.applied_date is not the expected type, validation failed.") + obj.applied_amount&.is_a?(String) != false || raise("Passed value for field obj.applied_amount is not the expected type, validation failed.") + obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_invoice.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_invoice.rb new file mode 100644 index 00000000..52fcc28c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_invoice.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "invoice" + +module Merge + module Accounting + class VendorCreditApplyLineForVendorCreditInvoice + # Deserialize a JSON object to an instance of + # VendorCreditApplyLineForVendorCreditInvoice + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCreditInvoice] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Invoice.validate_raw(obj: struct) + return Merge::Accounting::Invoice.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Invoice.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.rb new file mode 100644 index 00000000..00d9fc54 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request.rb @@ -0,0 +1,120 @@ +# frozen_string_literal: true + +require_relative "vendor_credit_apply_line_for_vendor_credit_request_invoice" +require "date" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The VendorCreditApplyLine Object + # ### Description + # The `VendorCreditApplyLine` object is used to represent a applied vendor credit. + # ### Usage Example + # Fetch from the `GET VendorCredit` endpoint and view the vendor credit's applied + # to lines. + class VendorCreditApplyLineForVendorCreditRequest + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCreditRequestInvoice] + attr_reader :invoice + # @return [DateTime] Date that the vendor credit is applied to the invoice. + attr_reader :applied_date + # @return [String] The amount of the VendorCredit applied to the invoice. + attr_reader :applied_amount + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param invoice [Merge::Accounting::VendorCreditApplyLineForVendorCreditRequestInvoice] + # @param applied_date [DateTime] Date that the vendor credit is applied to the invoice. + # @param applied_amount [String] The amount of the VendorCredit applied to the invoice. + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCreditRequest] + def initialize(remote_id: OMIT, invoice: OMIT, applied_date: OMIT, applied_amount: OMIT, + integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @invoice = invoice if invoice != OMIT + @applied_date = applied_date if applied_date != OMIT + @applied_amount = applied_amount if applied_amount != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "invoice": invoice, + "applied_date": applied_date, + "applied_amount": applied_amount, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of + # VendorCreditApplyLineForVendorCreditRequest + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCreditRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + if parsed_json["invoice"].nil? + invoice = nil + else + invoice = parsed_json["invoice"].to_json + invoice = Merge::Accounting::VendorCreditApplyLineForVendorCreditRequestInvoice.from_json(json_object: invoice) + end + applied_date = (DateTime.parse(parsed_json["applied_date"]) unless parsed_json["applied_date"].nil?) + applied_amount = parsed_json["applied_amount"] + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + remote_id: remote_id, + invoice: invoice, + applied_date: applied_date, + applied_amount: applied_amount, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of VendorCreditApplyLineForVendorCreditRequest to a JSON + # object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.invoice.nil? || Merge::Accounting::VendorCreditApplyLineForVendorCreditRequestInvoice.validate_raw(obj: obj.invoice) + obj.applied_date&.is_a?(DateTime) != false || raise("Passed value for field obj.applied_date is not the expected type, validation failed.") + obj.applied_amount&.is_a?(String) != false || raise("Passed value for field obj.applied_amount is not the expected type, validation failed.") + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request_invoice.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request_invoice.rb new file mode 100644 index 00000000..bbb6ce31 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request_invoice.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "invoice" + +module Merge + module Accounting + class VendorCreditApplyLineForVendorCreditRequestInvoice + # Deserialize a JSON object to an instance of + # VendorCreditApplyLineForVendorCreditRequestInvoice + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditApplyLineForVendorCreditRequestInvoice] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Invoice.validate_raw(obj: struct) + return Merge::Accounting::Invoice.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Invoice.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb index f1fc1169..991753de 100644 --- a/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_line.rb @@ -26,7 +26,7 @@ class VendorCreditLine attr_reader :net_amount # @return [String] The line's associated tracking category. attr_reader :tracking_category - # @return [Array] The line's associated tracking categories. + # @return [Array] The vendor credit line item's associated tracking categories. attr_reader :tracking_categories # @return [String] The line's description. attr_reader :description @@ -34,10 +34,14 @@ class VendorCreditLine attr_reader :account # @return [String] The company the line belongs to. attr_reader :company + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate # @return [String] The vendor credit line item's exchange rate. attr_reader :exchange_rate # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -53,27 +57,31 @@ class VendorCreditLine # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param net_amount [Float] The full value of the credit. # @param tracking_category [String] The line's associated tracking category. - # @param tracking_categories [Array] The line's associated tracking categories. + # @param tracking_categories [Array] The vendor credit line item's associated tracking categories. # @param description [String] The line's description. # @param account [Merge::Accounting::VendorCreditLineAccount] The line's account. # @param company [String] The company the line belongs to. + # @param tax_rate [String] The tax rate that applies to this line item. # @param exchange_rate [String] The vendor credit line item's exchange rate. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Accounting::VendorCreditLine] - def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, net_amount: OMIT, - tracking_category: OMIT, description: OMIT, account: OMIT, company: OMIT, exchange_rate: OMIT, remote_was_deleted: OMIT, additional_properties: nil) + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, net_amount: OMIT, + tracking_category: OMIT, tracking_categories: OMIT, description: OMIT, account: OMIT, company: OMIT, tax_rate: OMIT, exchange_rate: OMIT, remote_was_deleted: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @net_amount = net_amount if net_amount != OMIT @tracking_category = tracking_category if tracking_category != OMIT - @tracking_categories = tracking_categories + @tracking_categories = tracking_categories if tracking_categories != OMIT @description = description if description != OMIT @account = account if account != OMIT @company = company if company != OMIT + @tax_rate = tax_rate if tax_rate != OMIT @exchange_rate = exchange_rate if exchange_rate != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @additional_properties = additional_properties @@ -88,6 +96,7 @@ def initialize(tracking_categories:, id: OMIT, remote_id: OMIT, created_at: OMIT "description": description, "account": account, "company": company, + "tax_rate": tax_rate, "exchange_rate": exchange_rate, "remote_was_deleted": remote_was_deleted }.reject do |_k, v| @@ -117,6 +126,7 @@ def self.from_json(json_object:) account = Merge::Accounting::VendorCreditLineAccount.from_json(json_object: account) end company = parsed_json["company"] + tax_rate = parsed_json["tax_rate"] exchange_rate = parsed_json["exchange_rate"] remote_was_deleted = parsed_json["remote_was_deleted"] new( @@ -130,6 +140,7 @@ def self.from_json(json_object:) description: description, account: account, company: company, + tax_rate: tax_rate, exchange_rate: exchange_rate, remote_was_deleted: remote_was_deleted, additional_properties: struct @@ -156,10 +167,11 @@ def self.validate_raw(obj:) obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.net_amount&.is_a?(Float) != false || raise("Passed value for field obj.net_amount is not the expected type, validation failed.") obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") - obj.tracking_categories.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.account.nil? || Merge::Accounting::VendorCreditLineAccount.validate_raw(obj: obj.account) obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb new file mode 100644 index 00000000..7d50890d --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_line_request.rb @@ -0,0 +1,157 @@ +# frozen_string_literal: true + +require_relative "vendor_credit_line_request_account" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The VendorCreditLine Object + # ### Description + # The `VendorCreditLine` object is used to represent a vendor credit's line items. + # ### Usage Example + # Fetch from the `GET VendorCredit` endpoint and view the vendor credit's line + # items. + class VendorCreditLineRequest + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [Float] The full value of the credit. + attr_reader :net_amount + # @return [String] The line's associated tracking category. + attr_reader :tracking_category + # @return [Array] The vendor credit line item's associated tracking categories. + attr_reader :tracking_categories + # @return [String] The line's description. + attr_reader :description + # @return [Merge::Accounting::VendorCreditLineRequestAccount] The line's account. + attr_reader :account + # @return [String] The company the line belongs to. + attr_reader :company + # @return [String] The tax rate that applies to this line item. + attr_reader :tax_rate + # @return [String] The vendor credit line item's exchange rate. + attr_reader :exchange_rate + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param remote_id [String] The third-party API ID of the matching object. + # @param net_amount [Float] The full value of the credit. + # @param tracking_category [String] The line's associated tracking category. + # @param tracking_categories [Array] The vendor credit line item's associated tracking categories. + # @param description [String] The line's description. + # @param account [Merge::Accounting::VendorCreditLineRequestAccount] The line's account. + # @param company [String] The company the line belongs to. + # @param tax_rate [String] The tax rate that applies to this line item. + # @param exchange_rate [String] The vendor credit line item's exchange rate. + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::VendorCreditLineRequest] + def initialize(remote_id: OMIT, net_amount: OMIT, tracking_category: OMIT, tracking_categories: OMIT, + description: OMIT, account: OMIT, company: OMIT, tax_rate: OMIT, exchange_rate: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @remote_id = remote_id if remote_id != OMIT + @net_amount = net_amount if net_amount != OMIT + @tracking_category = tracking_category if tracking_category != OMIT + @tracking_categories = tracking_categories if tracking_categories != OMIT + @description = description if description != OMIT + @account = account if account != OMIT + @company = company if company != OMIT + @tax_rate = tax_rate if tax_rate != OMIT + @exchange_rate = exchange_rate if exchange_rate != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "remote_id": remote_id, + "net_amount": net_amount, + "tracking_category": tracking_category, + "tracking_categories": tracking_categories, + "description": description, + "account": account, + "company": company, + "tax_rate": tax_rate, + "exchange_rate": exchange_rate, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of VendorCreditLineRequest + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditLineRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + remote_id = parsed_json["remote_id"] + net_amount = parsed_json["net_amount"] + tracking_category = parsed_json["tracking_category"] + tracking_categories = parsed_json["tracking_categories"] + description = parsed_json["description"] + if parsed_json["account"].nil? + account = nil + else + account = parsed_json["account"].to_json + account = Merge::Accounting::VendorCreditLineRequestAccount.from_json(json_object: account) + end + company = parsed_json["company"] + tax_rate = parsed_json["tax_rate"] + exchange_rate = parsed_json["exchange_rate"] + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + remote_id: remote_id, + net_amount: net_amount, + tracking_category: tracking_category, + tracking_categories: tracking_categories, + description: description, + account: account, + company: company, + tax_rate: tax_rate, + exchange_rate: exchange_rate, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of VendorCreditLineRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.net_amount&.is_a?(Float) != false || raise("Passed value for field obj.net_amount is not the expected type, validation failed.") + obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.") + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") + obj.account.nil? || Merge::Accounting::VendorCreditLineRequestAccount.validate_raw(obj: obj.account) + obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.") + obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.") + obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_account.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_account.rb new file mode 100644 index 00000000..e17c4949 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_line_request_account.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "account" + +module Merge + module Accounting + # The line's account. + class VendorCreditLineRequestAccount + # Deserialize a JSON object to an instance of VendorCreditLineRequestAccount + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditLineRequestAccount] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Account.validate_raw(obj: struct) + return Merge::Accounting::Account.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Account.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_request.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_request.rb new file mode 100644 index 00000000..3910fe3c --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_request.rb @@ -0,0 +1,813 @@ +# frozen_string_literal: true + +require "date" +require_relative "vendor_credit_request_vendor" +require_relative "transaction_currency_enum" +require_relative "vendor_credit_request_company" +require_relative "vendor_credit_request_tracking_categories_item" +require_relative "vendor_credit_apply_line_for_vendor_credit_request" +require_relative "vendor_credit_request_accounting_period" +require "ostruct" +require "json" + +module Merge + module Accounting + # # The VendorCredit Object + # ### Description + # A `VendorCredit` is transaction issued by a vendor to the accounting company, + # indicating a reduction or cancellation of the amount owed to the vendor. It is + # most generally used as an adjustment note used to rectify errors, returns, or + # overpayments related to a purchasing transaction. A `VendorCredit` can be + # applied to `Accounts Payable` Invoices to decrease the overall amount of the + # `Invoice`. + # ### Usage Example + # Fetch from the `GET VendorCredit` endpoint and view a company's vendor credits. + class VendorCreditRequest + # @return [String] The vendor credit's number. + attr_reader :number + # @return [DateTime] The vendor credit's transaction date. + attr_reader :transaction_date + # @return [Merge::Accounting::VendorCreditRequestVendor] The vendor that owes the gift or refund. + attr_reader :vendor + # @return [Float] The vendor credit's total amount. + attr_reader :total_amount + # @return [Merge::Accounting::TransactionCurrencyEnum] The vendor credit's currency. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + attr_reader :currency + # @return [String] The vendor credit's exchange rate. + attr_reader :exchange_rate + # @return [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + attr_reader :inclusive_of_tax + # @return [Merge::Accounting::VendorCreditRequestCompany] The company the vendor credit belongs to. + attr_reader :company + # @return [Array] + attr_reader :tracking_categories + # @return [Array] A list of VendorCredit Applied to Lines objects. + attr_reader :applied_to_lines + # @return [Merge::Accounting::VendorCreditRequestAccountingPeriod] The accounting period that the VendorCredit was generated in. + attr_reader :accounting_period + # @return [Hash{String => Object}] + attr_reader :integration_params + # @return [Hash{String => Object}] + attr_reader :linked_account_params + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param number [String] The vendor credit's number. + # @param transaction_date [DateTime] The vendor credit's transaction date. + # @param vendor [Merge::Accounting::VendorCreditRequestVendor] The vendor that owes the gift or refund. + # @param total_amount [Float] The vendor credit's total amount. + # @param currency [Merge::Accounting::TransactionCurrencyEnum] The vendor credit's currency. + # - `XUA` - ADB Unit of Account + # - `AFN` - Afghan Afghani + # - `AFA` - Afghan Afghani (1927–2002) + # - `ALL` - Albanian Lek + # - `ALK` - Albanian Lek (1946–1965) + # - `DZD` - Algerian Dinar + # - `ADP` - Andorran Peseta + # - `AOA` - Angolan Kwanza + # - `AOK` - Angolan Kwanza (1977–1991) + # - `AON` - Angolan New Kwanza (1990–2000) + # - `AOR` - Angolan Readjusted Kwanza (1995–1999) + # - `ARA` - Argentine Austral + # - `ARS` - Argentine Peso + # - `ARM` - Argentine Peso (1881–1970) + # - `ARP` - Argentine Peso (1983–1985) + # - `ARL` - Argentine Peso Ley (1970–1983) + # - `AMD` - Armenian Dram + # - `AWG` - Aruban Florin + # - `AUD` - Australian Dollar + # - `ATS` - Austrian Schilling + # - `AZN` - Azerbaijani Manat + # - `AZM` - Azerbaijani Manat (1993–2006) + # - `BSD` - Bahamian Dollar + # - `BHD` - Bahraini Dinar + # - `BDT` - Bangladeshi Taka + # - `BBD` - Barbadian Dollar + # - `BYN` - Belarusian Ruble + # - `BYB` - Belarusian Ruble (1994–1999) + # - `BYR` - Belarusian Ruble (2000–2016) + # - `BEF` - Belgian Franc + # - `BEC` - Belgian Franc (convertible) + # - `BEL` - Belgian Franc (financial) + # - `BZD` - Belize Dollar + # - `BMD` - Bermudan Dollar + # - `BTN` - Bhutanese Ngultrum + # - `BOB` - Bolivian Boliviano + # - `BOL` - Bolivian Boliviano (1863–1963) + # - `BOV` - Bolivian Mvdol + # - `BOP` - Bolivian Peso + # - `BAM` - Bosnia-Herzegovina Convertible Mark + # - `BAD` - Bosnia-Herzegovina Dinar (1992–1994) + # - `BAN` - Bosnia-Herzegovina New Dinar (1994–1997) + # - `BWP` - Botswanan Pula + # - `BRC` - Brazilian Cruzado (1986–1989) + # - `BRZ` - Brazilian Cruzeiro (1942–1967) + # - `BRE` - Brazilian Cruzeiro (1990–1993) + # - `BRR` - Brazilian Cruzeiro (1993–1994) + # - `BRN` - Brazilian New Cruzado (1989–1990) + # - `BRB` - Brazilian New Cruzeiro (1967–1986) + # - `BRL` - Brazilian Real + # - `GBP` - British Pound + # - `BND` - Brunei Dollar + # - `BGL` - Bulgarian Hard Lev + # - `BGN` - Bulgarian Lev + # - `BGO` - Bulgarian Lev (1879–1952) + # - `BGM` - Bulgarian Socialist Lev + # - `BUK` - Burmese Kyat + # - `BIF` - Burundian Franc + # - `XPF` - CFP Franc + # - `KHR` - Cambodian Riel + # - `CAD` - Canadian Dollar + # - `CVE` - Cape Verdean Escudo + # - `KYD` - Cayman Islands Dollar + # - `XAF` - Central African CFA Franc + # - `CLE` - Chilean Escudo + # - `CLP` - Chilean Peso + # - `CLF` - Chilean Unit of Account (UF) + # - `CNX` - Chinese People’s Bank Dollar + # - `CNY` - Chinese Yuan + # - `CNH` - Chinese Yuan (offshore) + # - `COP` - Colombian Peso + # - `COU` - Colombian Real Value Unit + # - `KMF` - Comorian Franc + # - `CDF` - Congolese Franc + # - `CRC` - Costa Rican Colón + # - `HRD` - Croatian Dinar + # - `HRK` - Croatian Kuna + # - `CUC` - Cuban Convertible Peso + # - `CUP` - Cuban Peso + # - `CYP` - Cypriot Pound + # - `CZK` - Czech Koruna + # - `CSK` - Czechoslovak Hard Koruna + # - `DKK` - Danish Krone + # - `DJF` - Djiboutian Franc + # - `DOP` - Dominican Peso + # - `NLG` - Dutch Guilder + # - `XCD` - East Caribbean Dollar + # - `DDM` - East German Mark + # - `ECS` - Ecuadorian Sucre + # - `ECV` - Ecuadorian Unit of Constant Value + # - `EGP` - Egyptian Pound + # - `GQE` - Equatorial Guinean Ekwele + # - `ERN` - Eritrean Nakfa + # - `EEK` - Estonian Kroon + # - `ETB` - Ethiopian Birr + # - `EUR` - Euro + # - `XBA` - European Composite Unit + # - `XEU` - European Currency Unit + # - `XBB` - European Monetary Unit + # - `XBC` - European Unit of Account (XBC) + # - `XBD` - European Unit of Account (XBD) + # - `FKP` - Falkland Islands Pound + # - `FJD` - Fijian Dollar + # - `FIM` - Finnish Markka + # - `FRF` - French Franc + # - `XFO` - French Gold Franc + # - `XFU` - French UIC-Franc + # - `GMD` - Gambian Dalasi + # - `GEK` - Georgian Kupon Larit + # - `GEL` - Georgian Lari + # - `DEM` - German Mark + # - `GHS` - Ghanaian Cedi + # - `GHC` - Ghanaian Cedi (1979–2007) + # - `GIP` - Gibraltar Pound + # - `XAU` - Gold + # - `GRD` - Greek Drachma + # - `GTQ` - Guatemalan Quetzal + # - `GWP` - Guinea-Bissau Peso + # - `GNF` - Guinean Franc + # - `GNS` - Guinean Syli + # - `GYD` - Guyanaese Dollar + # - `HTG` - Haitian Gourde + # - `HNL` - Honduran Lempira + # - `HKD` - Hong Kong Dollar + # - `HUF` - Hungarian Forint + # - `IMP` - IMP + # - `ISK` - Icelandic Króna + # - `ISJ` - Icelandic Króna (1918–1981) + # - `INR` - Indian Rupee + # - `IDR` - Indonesian Rupiah + # - `IRR` - Iranian Rial + # - `IQD` - Iraqi Dinar + # - `IEP` - Irish Pound + # - `ILS` - Israeli New Shekel + # - `ILP` - Israeli Pound + # - `ILR` - Israeli Shekel (1980–1985) + # - `ITL` - Italian Lira + # - `JMD` - Jamaican Dollar + # - `JPY` - Japanese Yen + # - `JOD` - Jordanian Dinar + # - `KZT` - Kazakhstani Tenge + # - `KES` - Kenyan Shilling + # - `KWD` - Kuwaiti Dinar + # - `KGS` - Kyrgystani Som + # - `LAK` - Laotian Kip + # - `LVL` - Latvian Lats + # - `LVR` - Latvian Ruble + # - `LBP` - Lebanese Pound + # - `LSL` - Lesotho Loti + # - `LRD` - Liberian Dollar + # - `LYD` - Libyan Dinar + # - `LTL` - Lithuanian Litas + # - `LTT` - Lithuanian Talonas + # - `LUL` - Luxembourg Financial Franc + # - `LUC` - Luxembourgian Convertible Franc + # - `LUF` - Luxembourgian Franc + # - `MOP` - Macanese Pataca + # - `MKD` - Macedonian Denar + # - `MKN` - Macedonian Denar (1992–1993) + # - `MGA` - Malagasy Ariary + # - `MGF` - Malagasy Franc + # - `MWK` - Malawian Kwacha + # - `MYR` - Malaysian Ringgit + # - `MVR` - Maldivian Rufiyaa + # - `MVP` - Maldivian Rupee (1947–1981) + # - `MLF` - Malian Franc + # - `MTL` - Maltese Lira + # - `MTP` - Maltese Pound + # - `MRU` - Mauritanian Ouguiya + # - `MRO` - Mauritanian Ouguiya (1973–2017) + # - `MUR` - Mauritian Rupee + # - `MXV` - Mexican Investment Unit + # - `MXN` - Mexican Peso + # - `MXP` - Mexican Silver Peso (1861–1992) + # - `MDC` - Moldovan Cupon + # - `MDL` - Moldovan Leu + # - `MCF` - Monegasque Franc + # - `MNT` - Mongolian Tugrik + # - `MAD` - Moroccan Dirham + # - `MAF` - Moroccan Franc + # - `MZE` - Mozambican Escudo + # - `MZN` - Mozambican Metical + # - `MZM` - Mozambican Metical (1980–2006) + # - `MMK` - Myanmar Kyat + # - `NAD` - Namibian Dollar + # - `NPR` - Nepalese Rupee + # - `ANG` - Netherlands Antillean Guilder + # - `TWD` - New Taiwan Dollar + # - `NZD` - New Zealand Dollar + # - `NIO` - Nicaraguan Córdoba + # - `NIC` - Nicaraguan Córdoba (1988–1991) + # - `NGN` - Nigerian Naira + # - `KPW` - North Korean Won + # - `NOK` - Norwegian Krone + # - `OMR` - Omani Rial + # - `PKR` - Pakistani Rupee + # - `XPD` - Palladium + # - `PAB` - Panamanian Balboa + # - `PGK` - Papua New Guinean Kina + # - `PYG` - Paraguayan Guarani + # - `PEI` - Peruvian Inti + # - `PEN` - Peruvian Sol + # - `PES` - Peruvian Sol (1863–1965) + # - `PHP` - Philippine Peso + # - `XPT` - Platinum + # - `PLN` - Polish Zloty + # - `PLZ` - Polish Zloty (1950–1995) + # - `PTE` - Portuguese Escudo + # - `GWE` - Portuguese Guinea Escudo + # - `QAR` - Qatari Rial + # - `XRE` - RINET Funds + # - `RHD` - Rhodesian Dollar + # - `RON` - Romanian Leu + # - `ROL` - Romanian Leu (1952–2006) + # - `RUB` - Russian Ruble + # - `RUR` - Russian Ruble (1991–1998) + # - `RWF` - Rwandan Franc + # - `SVC` - Salvadoran Colón + # - `WST` - Samoan Tala + # - `SAR` - Saudi Riyal + # - `RSD` - Serbian Dinar + # - `CSD` - Serbian Dinar (2002–2006) + # - `SCR` - Seychellois Rupee + # - `SLL` - Sierra Leonean Leone + # - `XAG` - Silver + # - `SGD` - Singapore Dollar + # - `SKK` - Slovak Koruna + # - `SIT` - Slovenian Tolar + # - `SBD` - Solomon Islands Dollar + # - `SOS` - Somali Shilling + # - `ZAR` - South African Rand + # - `ZAL` - South African Rand (financial) + # - `KRH` - South Korean Hwan (1953–1962) + # - `KRW` - South Korean Won + # - `KRO` - South Korean Won (1945–1953) + # - `SSP` - South Sudanese Pound + # - `SUR` - Soviet Rouble + # - `ESP` - Spanish Peseta + # - `ESA` - Spanish Peseta (A account) + # - `ESB` - Spanish Peseta (convertible account) + # - `XDR` - Special Drawing Rights + # - `LKR` - Sri Lankan Rupee + # - `SHP` - St. Helena Pound + # - `XSU` - Sucre + # - `SDD` - Sudanese Dinar (1992–2007) + # - `SDG` - Sudanese Pound + # - `SDP` - Sudanese Pound (1957–1998) + # - `SRD` - Surinamese Dollar + # - `SRG` - Surinamese Guilder + # - `SZL` - Swazi Lilangeni + # - `SEK` - Swedish Krona + # - `CHF` - Swiss Franc + # - `SYP` - Syrian Pound + # - `STN` - São Tomé & Príncipe Dobra + # - `STD` - São Tomé & Príncipe Dobra (1977–2017) + # - `TVD` - TVD + # - `TJR` - Tajikistani Ruble + # - `TJS` - Tajikistani Somoni + # - `TZS` - Tanzanian Shilling + # - `XTS` - Testing Currency Code + # - `THB` - Thai Baht + # - `XXX` - The codes assigned for transactions where no currency is involved + # - `TPE` - Timorese Escudo + # - `TOP` - Tongan Paʻanga + # - `TTD` - Trinidad & Tobago Dollar + # - `TND` - Tunisian Dinar + # - `TRY` - Turkish Lira + # - `TRL` - Turkish Lira (1922–2005) + # - `TMT` - Turkmenistani Manat + # - `TMM` - Turkmenistani Manat (1993–2009) + # - `USD` - US Dollar + # - `USN` - US Dollar (Next day) + # - `USS` - US Dollar (Same day) + # - `UGX` - Ugandan Shilling + # - `UGS` - Ugandan Shilling (1966–1987) + # - `UAH` - Ukrainian Hryvnia + # - `UAK` - Ukrainian Karbovanets + # - `AED` - United Arab Emirates Dirham + # - `UYW` - Uruguayan Nominal Wage Index Unit + # - `UYU` - Uruguayan Peso + # - `UYP` - Uruguayan Peso (1975–1993) + # - `UYI` - Uruguayan Peso (Indexed Units) + # - `UZS` - Uzbekistani Som + # - `VUV` - Vanuatu Vatu + # - `VES` - Venezuelan Bolívar + # - `VEB` - Venezuelan Bolívar (1871–2008) + # - `VEF` - Venezuelan Bolívar (2008–2018) + # - `VND` - Vietnamese Dong + # - `VNN` - Vietnamese Dong (1978–1985) + # - `CHE` - WIR Euro + # - `CHW` - WIR Franc + # - `XOF` - West African CFA Franc + # - `YDD` - Yemeni Dinar + # - `YER` - Yemeni Rial + # - `YUN` - Yugoslavian Convertible Dinar (1990–1992) + # - `YUD` - Yugoslavian Hard Dinar (1966–1990) + # - `YUM` - Yugoslavian New Dinar (1994–2002) + # - `YUR` - Yugoslavian Reformed Dinar (1992–1993) + # - `ZWN` - ZWN + # - `ZRN` - Zairean New Zaire (1993–1998) + # - `ZRZ` - Zairean Zaire (1971–1993) + # - `ZMW` - Zambian Kwacha + # - `ZMK` - Zambian Kwacha (1968–2012) + # - `ZWD` - Zimbabwean Dollar (1980–2008) + # - `ZWR` - Zimbabwean Dollar (2008) + # - `ZWL` - Zimbabwean Dollar (2009) + # @param exchange_rate [String] The vendor credit's exchange rate. + # @param inclusive_of_tax [Boolean] If the transaction is inclusive or exclusive of tax. `True` if inclusive, + # `False` if exclusive. + # @param company [Merge::Accounting::VendorCreditRequestCompany] The company the vendor credit belongs to. + # @param tracking_categories [Array] + # @param applied_to_lines [Array] A list of VendorCredit Applied to Lines objects. + # @param accounting_period [Merge::Accounting::VendorCreditRequestAccountingPeriod] The accounting period that the VendorCredit was generated in. + # @param integration_params [Hash{String => Object}] + # @param linked_account_params [Hash{String => Object}] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::VendorCreditRequest] + def initialize(number: OMIT, transaction_date: OMIT, vendor: OMIT, total_amount: OMIT, currency: OMIT, + exchange_rate: OMIT, inclusive_of_tax: OMIT, company: OMIT, tracking_categories: OMIT, applied_to_lines: OMIT, accounting_period: OMIT, integration_params: OMIT, linked_account_params: OMIT, additional_properties: nil) + @number = number if number != OMIT + @transaction_date = transaction_date if transaction_date != OMIT + @vendor = vendor if vendor != OMIT + @total_amount = total_amount if total_amount != OMIT + @currency = currency if currency != OMIT + @exchange_rate = exchange_rate if exchange_rate != OMIT + @inclusive_of_tax = inclusive_of_tax if inclusive_of_tax != OMIT + @company = company if company != OMIT + @tracking_categories = tracking_categories if tracking_categories != OMIT + @applied_to_lines = applied_to_lines if applied_to_lines != OMIT + @accounting_period = accounting_period if accounting_period != OMIT + @integration_params = integration_params if integration_params != OMIT + @linked_account_params = linked_account_params if linked_account_params != OMIT + @additional_properties = additional_properties + @_field_set = { + "number": number, + "transaction_date": transaction_date, + "vendor": vendor, + "total_amount": total_amount, + "currency": currency, + "exchange_rate": exchange_rate, + "inclusive_of_tax": inclusive_of_tax, + "company": company, + "tracking_categories": tracking_categories, + "applied_to_lines": applied_to_lines, + "accounting_period": accounting_period, + "integration_params": integration_params, + "linked_account_params": linked_account_params + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of VendorCreditRequest + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditRequest] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + number = parsed_json["number"] + transaction_date = (DateTime.parse(parsed_json["transaction_date"]) unless parsed_json["transaction_date"].nil?) + if parsed_json["vendor"].nil? + vendor = nil + else + vendor = parsed_json["vendor"].to_json + vendor = Merge::Accounting::VendorCreditRequestVendor.from_json(json_object: vendor) + end + total_amount = parsed_json["total_amount"] + currency = parsed_json["currency"] + exchange_rate = parsed_json["exchange_rate"] + inclusive_of_tax = parsed_json["inclusive_of_tax"] + if parsed_json["company"].nil? + company = nil + else + company = parsed_json["company"].to_json + company = Merge::Accounting::VendorCreditRequestCompany.from_json(json_object: company) + end + tracking_categories = parsed_json["tracking_categories"]&.map do |item| + item = item.to_json + Merge::Accounting::VendorCreditRequestTrackingCategoriesItem.from_json(json_object: item) + end + applied_to_lines = parsed_json["applied_to_lines"]&.map do |item| + item = item.to_json + Merge::Accounting::VendorCreditApplyLineForVendorCreditRequest.from_json(json_object: item) + end + if parsed_json["accounting_period"].nil? + accounting_period = nil + else + accounting_period = parsed_json["accounting_period"].to_json + accounting_period = Merge::Accounting::VendorCreditRequestAccountingPeriod.from_json(json_object: accounting_period) + end + integration_params = parsed_json["integration_params"] + linked_account_params = parsed_json["linked_account_params"] + new( + number: number, + transaction_date: transaction_date, + vendor: vendor, + total_amount: total_amount, + currency: currency, + exchange_rate: exchange_rate, + inclusive_of_tax: inclusive_of_tax, + company: company, + tracking_categories: tracking_categories, + applied_to_lines: applied_to_lines, + accounting_period: accounting_period, + integration_params: integration_params, + linked_account_params: linked_account_params, + additional_properties: struct + ) + end + + # Serialize an instance of VendorCreditRequest to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.number&.is_a?(String) != false || raise("Passed value for field obj.number is not the expected type, validation failed.") + obj.transaction_date&.is_a?(DateTime) != false || raise("Passed value for field obj.transaction_date is not the expected type, validation failed.") + obj.vendor.nil? || Merge::Accounting::VendorCreditRequestVendor.validate_raw(obj: obj.vendor) + obj.total_amount&.is_a?(Float) != false || raise("Passed value for field obj.total_amount is not the expected type, validation failed.") + obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.") + obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.") + obj.inclusive_of_tax&.is_a?(Boolean) != false || raise("Passed value for field obj.inclusive_of_tax is not the expected type, validation failed.") + obj.company.nil? || Merge::Accounting::VendorCreditRequestCompany.validate_raw(obj: obj.company) + obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.") + obj.applied_to_lines&.is_a?(Array) != false || raise("Passed value for field obj.applied_to_lines is not the expected type, validation failed.") + obj.accounting_period.nil? || Merge::Accounting::VendorCreditRequestAccountingPeriod.validate_raw(obj: obj.accounting_period) + obj.integration_params&.is_a?(Hash) != false || raise("Passed value for field obj.integration_params is not the expected type, validation failed.") + obj.linked_account_params&.is_a?(Hash) != false || raise("Passed value for field obj.linked_account_params is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_request_accounting_period.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_request_accounting_period.rb new file mode 100644 index 00000000..0f32d6d8 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_request_accounting_period.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "accounting_period" + +module Merge + module Accounting + # The accounting period that the VendorCredit was generated in. + class VendorCreditRequestAccountingPeriod + # Deserialize a JSON object to an instance of VendorCreditRequestAccountingPeriod + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditRequestAccountingPeriod] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::AccountingPeriod.validate_raw(obj: struct) + return Merge::Accounting::AccountingPeriod.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::AccountingPeriod.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_request_company.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_request_company.rb new file mode 100644 index 00000000..80bb5a9f --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_request_company.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "company_info" + +module Merge + module Accounting + # The company the vendor credit belongs to. + class VendorCreditRequestCompany + # Deserialize a JSON object to an instance of VendorCreditRequestCompany + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditRequestCompany] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::CompanyInfo.validate_raw(obj: struct) + return Merge::Accounting::CompanyInfo.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::CompanyInfo.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_request_tracking_categories_item.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_request_tracking_categories_item.rb new file mode 100644 index 00000000..b39a37cd --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_request_tracking_categories_item.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "tracking_category" + +module Merge + module Accounting + class VendorCreditRequestTrackingCategoriesItem + # Deserialize a JSON object to an instance of + # VendorCreditRequestTrackingCategoriesItem + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditRequestTrackingCategoriesItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::TrackingCategory.validate_raw(obj: struct) + return Merge::Accounting::TrackingCategory.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::TrackingCategory.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_request_vendor.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_request_vendor.rb new file mode 100644 index 00000000..2d683392 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_request_vendor.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "contact" + +module Merge + module Accounting + # The vendor that owes the gift or refund. + class VendorCreditRequestVendor + # Deserialize a JSON object to an instance of VendorCreditRequestVendor + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditRequestVendor] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Accounting::Contact.validate_raw(obj: struct) + return Merge::Accounting::Contact.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Accounting::Contact.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/types/vendor_credit_response.rb b/lib/merge_ruby_client/accounting/types/vendor_credit_response.rb new file mode 100644 index 00000000..061c3c14 --- /dev/null +++ b/lib/merge_ruby_client/accounting/types/vendor_credit_response.rb @@ -0,0 +1,101 @@ +# frozen_string_literal: true + +require_relative "vendor_credit" +require_relative "warning_validation_problem" +require_relative "error_validation_problem" +require_relative "debug_mode_log" +require "ostruct" +require "json" + +module Merge + module Accounting + class VendorCreditResponse + # @return [Merge::Accounting::VendorCredit] + attr_reader :model + # @return [Array] + attr_reader :warnings + # @return [Array] + attr_reader :errors + # @return [Array] + attr_reader :logs + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param model [Merge::Accounting::VendorCredit] + # @param warnings [Array] + # @param errors [Array] + # @param logs [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Accounting::VendorCreditResponse] + def initialize(model:, warnings:, errors:, logs: OMIT, additional_properties: nil) + @model = model + @warnings = warnings + @errors = errors + @logs = logs if logs != OMIT + @additional_properties = additional_properties + @_field_set = { "model": model, "warnings": warnings, "errors": errors, "logs": logs }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of VendorCreditResponse + # + # @param json_object [String] + # @return [Merge::Accounting::VendorCreditResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + if parsed_json["model"].nil? + model = nil + else + model = parsed_json["model"].to_json + model = Merge::Accounting::VendorCredit.from_json(json_object: model) + end + warnings = parsed_json["warnings"]&.map do |item| + item = item.to_json + Merge::Accounting::WarningValidationProblem.from_json(json_object: item) + end + errors = parsed_json["errors"]&.map do |item| + item = item.to_json + Merge::Accounting::ErrorValidationProblem.from_json(json_object: item) + end + logs = parsed_json["logs"]&.map do |item| + item = item.to_json + Merge::Accounting::DebugModeLog.from_json(json_object: item) + end + new( + model: model, + warnings: warnings, + errors: errors, + logs: logs, + additional_properties: struct + ) + end + + # Serialize an instance of VendorCreditResponse to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + Merge::Accounting::VendorCredit.validate_raw(obj: obj.model) + obj.warnings.is_a?(Array) != false || raise("Passed value for field obj.warnings is not the expected type, validation failed.") + obj.errors.is_a?(Array) != false || raise("Passed value for field obj.errors is not the expected type, validation failed.") + obj.logs&.is_a?(Array) != false || raise("Passed value for field obj.logs is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/accounting/vendor_credits/client.rb b/lib/merge_ruby_client/accounting/vendor_credits/client.rb index 8e531538..648bfa4a 100644 --- a/lib/merge_ruby_client/accounting/vendor_credits/client.rb +++ b/lib/merge_ruby_client/accounting/vendor_credits/client.rb @@ -4,8 +4,11 @@ require "date" require_relative "types/vendor_credits_list_request_expand" require_relative "../types/paginated_vendor_credit_list" +require_relative "../types/vendor_credit_request" +require_relative "../types/vendor_credit_response" require_relative "types/vendor_credits_retrieve_request_expand" require_relative "../types/vendor_credit" +require_relative "../types/meta_response" require "async" module Merge @@ -28,9 +31,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::VendorCredits::VendorCreditsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -48,7 +56,7 @@ def initialize(request_client:) # ) # api.accounting.vendor_credits.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -67,6 +75,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -82,6 +91,54 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, Merge::Accounting::PaginatedVendorCreditList.from_json(json_object: response.body) end + # Creates a `VendorCredit` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::VendorCreditRequest, as a Hash + # * :number (String) + # * :transaction_date (DateTime) + # * :vendor (Hash) + # * :total_amount (Float) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :exchange_rate (String) + # * :inclusive_of_tax (Boolean) + # * :company (Hash) + # * :tracking_categories (Array) + # * :applied_to_lines (Array) + # * :accounting_period (Hash) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::VendorCreditResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.vendor_credits.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/vendor-credits" + end + Merge::Accounting::VendorCreditResponse.from_json(json_object: response.body) + end + # Returns a `VendorCredit` object with the given `id`. # # @param id [String] @@ -120,6 +177,38 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) end Merge::Accounting::VendorCredit.from_json(json_object: response.body) end + + # Returns metadata for `VendorCredit` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.vendor_credits.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/vendor-credits/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end end class AsyncVendorCreditsClient @@ -140,9 +229,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Accounting::VendorCredits::VendorCreditsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -160,7 +254,7 @@ def initialize(request_client:) # ) # api.accounting.vendor_credits.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, transaction_date_after: nil, transaction_date_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -180,6 +274,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -196,6 +291,56 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, end end + # Creates a `VendorCredit` object with the given values. + # + # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. + # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. + # @param model [Hash] Request of type Merge::Accounting::VendorCreditRequest, as a Hash + # * :number (String) + # * :transaction_date (DateTime) + # * :vendor (Hash) + # * :total_amount (Float) + # * :currency (Merge::Accounting::TransactionCurrencyEnum) + # * :exchange_rate (String) + # * :inclusive_of_tax (Boolean) + # * :company (Hash) + # * :tracking_categories (Array) + # * :applied_to_lines (Array) + # * :accounting_period (Hash) + # * :integration_params (Hash{String => Object}) + # * :linked_account_params (Hash{String => Object}) + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::VendorCreditResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.vendor_credits.create(model: { }) + def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) + Async do + response = @request_client.conn.post do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + req.params = { + **(request_options&.additional_query_parameters || {}), + "is_debug_mode": is_debug_mode, + "run_async": run_async + }.compact + req.body = { **(request_options&.additional_body_parameters || {}), model: model }.compact + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/vendor-credits" + end + Merge::Accounting::VendorCreditResponse.from_json(json_object: response.body) + end + end + # Returns a `VendorCredit` object with the given `id`. # # @param id [String] @@ -236,6 +381,40 @@ def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) Merge::Accounting::VendorCredit.from_json(json_object: response.body) end end + + # Returns metadata for `VendorCredit` POSTs. + # + # @param request_options [Merge::RequestOptions] + # @return [Merge::Accounting::MetaResponse] + # @example + # api = Merge::Client.new( + # base_url: "https://api.example.com", + # environment: Merge::Environment::PRODUCTION, + # api_key: "YOUR_AUTH_TOKEN" + # ) + # api.accounting.vendor_credits.meta_post_retrieve + def meta_post_retrieve(request_options: nil) + Async do + response = @request_client.conn.get do |req| + req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? + req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? + req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? + req.headers = { + **(req.headers || {}), + **@request_client.get_headers, + **(request_options&.additional_headers || {}) + }.compact + unless request_options.nil? || request_options&.additional_query_parameters.nil? + req.params = { **(request_options&.additional_query_parameters || {}) }.compact + end + unless request_options.nil? || request_options&.additional_body_parameters.nil? + req.body = { **(request_options&.additional_body_parameters || {}) }.compact + end + req.url "#{@request_client.get_url(request_options: request_options)}/accounting/v1/vendor-credits/meta/post" + end + Merge::Accounting::MetaResponse.from_json(json_object: response.body) + end + end end end end diff --git a/lib/merge_ruby_client/ats/activities/client.rb b/lib/merge_ruby_client/ats/activities/client.rb index 3e536482..5dd4c0bd 100644 --- a/lib/merge_ruby_client/ats/activities/client.rb +++ b/lib/merge_ruby_client/ats/activities/client.rb @@ -32,9 +32,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -55,7 +60,7 @@ def initialize(request_client:) # ) # api.ats.activities.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, user_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, user_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -73,6 +78,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -233,9 +239,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -256,7 +267,7 @@ def initialize(request_client:) # ) # api.ats.activities.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, user_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, user_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -275,6 +286,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/applications/client.rb b/lib/merge_ruby_client/ats/applications/client.rb index 28bfba37..9a885253 100644 --- a/lib/merge_ruby_client/ats/applications/client.rb +++ b/lib/merge_ruby_client/ats/applications/client.rb @@ -33,9 +33,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Applications::ApplicationsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_id [String] If provided, will only return applications for this job. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -54,7 +59,7 @@ def initialize(request_client:) # ) # api.ats.applications.list def list(candidate_id: nil, created_after: nil, created_before: nil, credited_to_id: nil, current_stage_id: nil, - cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, reject_reason_id: nil, remote_id: nil, source: nil, request_options: nil) + cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, reject_reason_id: nil, remote_id: nil, source: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -75,6 +80,7 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, credited_to "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "job_id": job_id, "modified_after": modified_after, "modified_before": modified_before, @@ -92,6 +98,12 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, credited_to end # Creates an `Application` object with the given values. + # For certain integrations, but not all, our API detects duplicate candidates and + # will associate applications with existing records in the third-party. New + # candidates are created and automatically linked to the application. + # See our [Help Center + # tps://help.merge.dev/en/articles/10012366-updates-to-post-applications-oct-2024) + # for detailed support per integration. # # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. @@ -280,9 +292,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Applications::ApplicationsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_id [String] If provided, will only return applications for this job. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -301,7 +318,7 @@ def initialize(request_client:) # ) # api.ats.applications.list def list(candidate_id: nil, created_after: nil, created_before: nil, credited_to_id: nil, current_stage_id: nil, - cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, reject_reason_id: nil, remote_id: nil, source: nil, request_options: nil) + cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, reject_reason_id: nil, remote_id: nil, source: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -323,6 +340,7 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, credited_to "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "job_id": job_id, "modified_after": modified_after, "modified_before": modified_before, @@ -341,6 +359,12 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, credited_to end # Creates an `Application` object with the given values. + # For certain integrations, but not all, our API detects duplicate candidates and + # will associate applications with existing records in the third-party. New + # candidates are created and automatically linked to the application. + # See our [Help Center + # tps://help.merge.dev/en/articles/10012366-updates-to-post-applications-oct-2024) + # for detailed support per integration. # # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. diff --git a/lib/merge_ruby_client/ats/async_passthrough/client.rb b/lib/merge_ruby_client/ats/async_passthrough/client.rb index 9c971f3f..5396640c 100644 --- a/lib/merge_ruby_client/ats/async_passthrough/client.rb +++ b/lib/merge_ruby_client/ats/async_passthrough/client.rb @@ -3,7 +3,7 @@ require_relative "../../../requests" require_relative "../types/data_passthrough_request" require_relative "../types/async_passthrough_reciept" -require_relative "../types/remote_response" +require_relative "types/async_passthrough_retrieve_response" require "async" module Merge @@ -61,7 +61,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Ats::RemoteResponse] + # @return [Merge::Ats::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -87,7 +87,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/ats/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Ats::RemoteResponse.from_json(json_object: response.body) + Merge::Ats::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end @@ -146,7 +146,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Ats::RemoteResponse] + # @return [Merge::Ats::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -173,7 +173,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/ats/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Ats::RemoteResponse.from_json(json_object: response.body) + Merge::Ats::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end end diff --git a/lib/merge_ruby_client/ats/async_passthrough/types/async_passthrough_retrieve_response.rb b/lib/merge_ruby_client/ats/async_passthrough/types/async_passthrough_retrieve_response.rb new file mode 100644 index 00000000..870532ab --- /dev/null +++ b/lib/merge_ruby_client/ats/async_passthrough/types/async_passthrough_retrieve_response.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "../../types/remote_response" + +module Merge + module Ats + class AsyncPassthrough + class AsyncPassthroughRetrieveResponse + # Deserialize a JSON object to an instance of AsyncPassthroughRetrieveResponse + # + # @param json_object [String] + # @return [Merge::Ats::AsyncPassthrough::AsyncPassthroughRetrieveResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + Merge::Ats::RemoteResponse.validate_raw(obj: struct) + return Merge::Ats::RemoteResponse.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return Merge::Ats::RemoteResponse.validate_raw(obj: obj) + rescue StandardError + # noop + end + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end + end +end diff --git a/lib/merge_ruby_client/ats/attachments/client.rb b/lib/merge_ruby_client/ats/attachments/client.rb index b8eb8b98..4a849528 100644 --- a/lib/merge_ruby_client/ats/attachments/client.rb +++ b/lib/merge_ruby_client/ats/attachments/client.rb @@ -29,9 +29,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -51,7 +56,7 @@ def initialize(request_client:) # ) # api.ats.attachments.list def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -70,6 +75,7 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -228,9 +234,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -250,7 +261,7 @@ def initialize(request_client:) # ) # api.ats.attachments.list def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -270,6 +281,7 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/audit_trail/client.rb b/lib/merge_ruby_client/ats/audit_trail/client.rb index be3bbcae..d931097b 100644 --- a/lib/merge_ruby_client/ats/audit_trail/client.rb +++ b/lib/merge_ruby_client/ats/audit_trail/client.rb @@ -38,7 +38,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` @@ -117,7 +120,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` diff --git a/lib/merge_ruby_client/ats/candidates/client.rb b/lib/merge_ruby_client/ats/candidates/client.rb index f8325035..528b938c 100644 --- a/lib/merge_ruby_client/ats/candidates/client.rb +++ b/lib/merge_ruby_client/ats/candidates/client.rb @@ -35,9 +35,14 @@ def initialize(request_client:) # @param expand [Merge::Ats::Candidates::CandidatesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. # @param first_name [String] If provided, will only return candidates with this first name. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param last_name [String] If provided, will only return candidates with this last name. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -56,7 +61,7 @@ def initialize(request_client:) # ) # api.ats.candidates.list def list(created_after: nil, created_before: nil, cursor: nil, email_addresses: nil, expand: nil, - first_name: nil, include_deleted_data: nil, include_remote_data: nil, last_name: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, tags: nil, request_options: nil) + first_name: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, last_name: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, tags: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -76,6 +81,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, email_addresses: "first_name": first_name, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "last_name": last_name, "modified_after": modified_after, "modified_before": modified_before, @@ -370,9 +376,14 @@ def initialize(request_client:) # @param expand [Merge::Ats::Candidates::CandidatesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. # @param first_name [String] If provided, will only return candidates with this first name. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param last_name [String] If provided, will only return candidates with this last name. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -391,7 +402,7 @@ def initialize(request_client:) # ) # api.ats.candidates.list def list(created_after: nil, created_before: nil, cursor: nil, email_addresses: nil, expand: nil, - first_name: nil, include_deleted_data: nil, include_remote_data: nil, last_name: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, tags: nil, request_options: nil) + first_name: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, last_name: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, tags: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -412,6 +423,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, email_addresses: "first_name": first_name, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "last_name": last_name, "modified_after": modified_after, "modified_before": modified_before, diff --git a/lib/merge_ruby_client/ats/departments/client.rb b/lib/merge_ruby_client/ats/departments/client.rb index 48f02464..638fe200 100644 --- a/lib/merge_ruby_client/ats/departments/client.rb +++ b/lib/merge_ruby_client/ats/departments/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ats.departments.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ats.departments.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/eeocs/client.rb b/lib/merge_ruby_client/ats/eeocs/client.rb index 42ca1b56..4bb8475f 100644 --- a/lib/merge_ruby_client/ats/eeocs/client.rb +++ b/lib/merge_ruby_client/ats/eeocs/client.rb @@ -30,9 +30,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.ats.eeocs.list def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,6 +76,7 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -151,9 +157,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -173,7 +184,7 @@ def initialize(request_client:) # ) # api.ats.eeocs.list def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -193,6 +204,7 @@ def list(candidate_id: nil, created_after: nil, created_before: nil, cursor: nil "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/field_mapping/client.rb b/lib/merge_ruby_client/ats/field_mapping/client.rb index 48e840ce..cdbed4a4 100644 --- a/lib/merge_ruby_client/ats/field_mapping/client.rb +++ b/lib/merge_ruby_client/ats/field_mapping/client.rb @@ -23,6 +23,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::FieldMappingApiInstanceResponse] # @example @@ -32,7 +36,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.ats.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -42,9 +46,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -57,6 +62,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -82,7 +91,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -92,9 +101,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, @@ -280,6 +290,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::FieldMappingApiInstanceResponse] # @example @@ -289,7 +303,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.ats.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -300,9 +314,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -316,6 +331,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -341,7 +360,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -352,9 +371,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, diff --git a/lib/merge_ruby_client/ats/force_resync/client.rb b/lib/merge_ruby_client/ats/force_resync/client.rb index 448028d9..6945b158 100644 --- a/lib/merge_ruby_client/ats/force_resync/client.rb +++ b/lib/merge_ruby_client/ats/force_resync/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # @@ -70,7 +70,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # diff --git a/lib/merge_ruby_client/ats/interviews/client.rb b/lib/merge_ruby_client/ats/interviews/client.rb index 92d54f6b..205b7dde 100644 --- a/lib/merge_ruby_client/ats/interviews/client.rb +++ b/lib/merge_ruby_client/ats/interviews/client.rb @@ -31,9 +31,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Interviews::InterviewsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_id [String] If provided, wll only return interviews organized for this job. # @param job_interview_stage_id [String] If provided, will only return interviews at this stage. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -56,7 +61,7 @@ def initialize(request_client:) # ) # api.ats.interviews.list def list(application_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, job_id: nil, job_interview_stage_id: nil, modified_after: nil, modified_before: nil, organizer_id: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, job_id: nil, job_interview_stage_id: nil, modified_after: nil, modified_before: nil, organizer_id: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -75,6 +80,7 @@ def list(application_id: nil, created_after: nil, created_before: nil, cursor: n "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "job_id": job_id, "job_interview_stage_id": job_interview_stage_id, "modified_after": modified_after, @@ -240,9 +246,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Interviews::InterviewsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_id [String] If provided, wll only return interviews organized for this job. # @param job_interview_stage_id [String] If provided, will only return interviews at this stage. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -265,7 +276,7 @@ def initialize(request_client:) # ) # api.ats.interviews.list def list(application_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, job_id: nil, job_interview_stage_id: nil, modified_after: nil, modified_before: nil, organizer_id: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, job_id: nil, job_interview_stage_id: nil, modified_after: nil, modified_before: nil, organizer_id: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -285,6 +296,7 @@ def list(application_id: nil, created_after: nil, created_before: nil, cursor: n "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "job_id": job_id, "job_interview_stage_id": job_interview_stage_id, "modified_after": modified_after, diff --git a/lib/merge_ruby_client/ats/job_interview_stages/client.rb b/lib/merge_ruby_client/ats/job_interview_stages/client.rb index b23eb6cb..21aa7588 100644 --- a/lib/merge_ruby_client/ats/job_interview_stages/client.rb +++ b/lib/merge_ruby_client/ats/job_interview_stages/client.rb @@ -25,9 +25,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_id [String] If provided, will only return interview stages for this job. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.ats.job_interview_stages.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -62,6 +67,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "job_id": job_id, "modified_after": modified_after, "modified_before": modified_before, @@ -133,9 +139,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_id [String] If provided, will only return interview stages for this job. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.ats.job_interview_stages.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, job_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -171,6 +182,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "job_id": job_id, "modified_after": modified_after, "modified_before": modified_before, diff --git a/lib/merge_ruby_client/ats/job_postings/client.rb b/lib/merge_ruby_client/ats/job_postings/client.rb index ba1390da..6500026d 100644 --- a/lib/merge_ruby_client/ats/job_postings/client.rb +++ b/lib/merge_ruby_client/ats/job_postings/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -51,7 +56,7 @@ def initialize(request_client:) # ) # api.ats.job_postings.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, status: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, status: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -69,6 +74,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -140,9 +146,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -165,7 +176,7 @@ def initialize(request_client:) # ) # api.ats.job_postings.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, status: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, status: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -184,6 +195,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/jobs/client.rb b/lib/merge_ruby_client/ats/jobs/client.rb index fe417e25..032513d4 100644 --- a/lib/merge_ruby_client/ats/jobs/client.rb +++ b/lib/merge_ruby_client/ats/jobs/client.rb @@ -31,9 +31,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Jobs::JobsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -62,7 +67,7 @@ def initialize(request_client:) # ) # api.ats.jobs.list def list(code: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, offices: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, status: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, offices: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, status: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -81,6 +86,7 @@ def list(code: nil, created_after: nil, created_before: nil, cursor: nil, expand "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "offices": offices, @@ -150,9 +156,14 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Jobs::JobsScreeningQuestionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::PaginatedScreeningQuestionList] @@ -164,7 +175,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # ) # api.ats.jobs.screening_questions_list(job_id: "job_id") def screening_questions_list(job_id:, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, page_size: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -180,6 +191,7 @@ def screening_questions_list(job_id:, cursor: nil, expand: nil, include_deleted_ "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -209,9 +221,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Jobs::JobsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -240,7 +257,7 @@ def initialize(request_client:) # ) # api.ats.jobs.list def list(code: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, offices: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, status: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, offices: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, status: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -260,6 +277,7 @@ def list(code: nil, created_after: nil, created_before: nil, cursor: nil, expand "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "offices": offices, @@ -332,9 +350,14 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Jobs::JobsScreeningQuestionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::PaginatedScreeningQuestionList] @@ -346,7 +369,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho # ) # api.ats.jobs.screening_questions_list(job_id: "job_id") def screening_questions_list(job_id:, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, page_size: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -363,6 +386,7 @@ def screening_questions_list(job_id:, cursor: nil, expand: nil, include_deleted_ "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? diff --git a/lib/merge_ruby_client/ats/link_token/client.rb b/lib/merge_ruby_client/ats/link_token/client.rb index f51ca5ab..03e87303 100644 --- a/lib/merge_ruby_client/ats/link_token/client.rb +++ b/lib/merge_ruby_client/ats/link_token/client.rb @@ -3,6 +3,7 @@ require_relative "../../../requests" require_relative "../types/categories_enum" require_relative "../types/common_model_scopes_body_request" +require_relative "../types/language_enum" require_relative "../types/link_token" require "async" @@ -48,7 +49,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Ats::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::LinkToken] @@ -65,7 +71,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -91,6 +97,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/ats/v1/link-token" @@ -139,7 +146,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Ats::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::LinkToken] @@ -156,7 +168,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -183,6 +195,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/ats/v1/link-token" diff --git a/lib/merge_ruby_client/ats/linked_accounts/client.rb b/lib/merge_ruby_client/ats/linked_accounts/client.rb index 0e1e0b46..62376419 100644 --- a/lib/merge_ruby_client/ats/linked_accounts/client.rb +++ b/lib/merge_ruby_client/ats/linked_accounts/client.rb @@ -47,7 +47,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::PaginatedAccountDetailsAndActionsList] # @example @@ -133,7 +133,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::PaginatedAccountDetailsAndActionsList] # @example diff --git a/lib/merge_ruby_client/ats/offers/client.rb b/lib/merge_ruby_client/ats/offers/client.rb index 7f2c5adc..dcc24c6e 100644 --- a/lib/merge_ruby_client/ats/offers/client.rb +++ b/lib/merge_ruby_client/ats/offers/client.rb @@ -29,9 +29,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Offers::OffersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -51,7 +56,7 @@ def initialize(request_client:) # ) # api.ats.offers.list def list(application_id: nil, created_after: nil, created_before: nil, creator_id: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,6 +76,7 @@ def list(application_id: nil, created_after: nil, created_before: nil, creator_i "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -152,9 +158,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Offers::OffersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -174,7 +185,7 @@ def initialize(request_client:) # ) # api.ats.offers.list def list(application_id: nil, created_after: nil, created_before: nil, creator_id: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -195,6 +206,7 @@ def list(application_id: nil, created_after: nil, created_before: nil, creator_i "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/offices/client.rb b/lib/merge_ruby_client/ats/offices/client.rb index b1c2434e..a1b04177 100644 --- a/lib/merge_ruby_client/ats/offices/client.rb +++ b/lib/merge_ruby_client/ats/offices/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ats.offices.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ats.offices.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/reject_reasons/client.rb b/lib/merge_ruby_client/ats/reject_reasons/client.rb index 92d83bc2..ac88c49d 100644 --- a/lib/merge_ruby_client/ats/reject_reasons/client.rb +++ b/lib/merge_ruby_client/ats/reject_reasons/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ats.reject_reasons.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ats.reject_reasons.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/scopes/client.rb b/lib/merge_ruby_client/ats/scopes/client.rb index 5fdfd580..98c544e5 100644 --- a/lib/merge_ruby_client/ats/scopes/client.rb +++ b/lib/merge_ruby_client/ats/scopes/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::CommonModelScopeApi] @@ -53,7 +53,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::CommonModelScopeApi] @@ -87,14 +87,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Ats::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::CommonModelScopeApi] # @example @@ -103,7 +103,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.ats.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.ats.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -136,7 +136,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::CommonModelScopeApi] @@ -172,7 +172,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::CommonModelScopeApi] @@ -208,14 +208,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Ats::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Ats::CommonModelScopeApi] # @example @@ -224,7 +224,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.ats.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.ats.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) Async do response = @request_client.conn.post do |req| diff --git a/lib/merge_ruby_client/ats/scorecards/client.rb b/lib/merge_ruby_client/ats/scorecards/client.rb index 8805614a..8785eab6 100644 --- a/lib/merge_ruby_client/ats/scorecards/client.rb +++ b/lib/merge_ruby_client/ats/scorecards/client.rb @@ -28,9 +28,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Scorecards::ScorecardsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param interview_id [String] If provided, will only return scorecards for this interview. # @param interviewer_id [String] If provided, will only return scorecards for this interviewer. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.ats.scorecards.list def list(application_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, interview_id: nil, interviewer_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, interview_id: nil, interviewer_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,6 +76,7 @@ def list(application_id: nil, created_after: nil, created_before: nil, cursor: n "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "interview_id": interview_id, "interviewer_id": interviewer_id, "modified_after": modified_after, @@ -153,9 +159,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ats::Scorecards::ScorecardsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param interview_id [String] If provided, will only return scorecards for this interview. # @param interviewer_id [String] If provided, will only return scorecards for this interviewer. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -177,7 +188,7 @@ def initialize(request_client:) # ) # api.ats.scorecards.list def list(application_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, interview_id: nil, interviewer_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, interview_id: nil, interviewer_id: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -197,6 +208,7 @@ def list(application_id: nil, created_after: nil, created_before: nil, cursor: n "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "interview_id": interview_id, "interviewer_id": interviewer_id, "modified_after": modified_after, diff --git a/lib/merge_ruby_client/ats/tags/client.rb b/lib/merge_ruby_client/ats/tags/client.rb index 4d79a428..7275e1da 100644 --- a/lib/merge_ruby_client/ats/tags/client.rb +++ b/lib/merge_ruby_client/ats/tags/client.rb @@ -22,9 +22,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -40,7 +45,7 @@ def initialize(request_client:) # ) # api.ats.tags.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -57,6 +62,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -86,9 +92,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -104,7 +115,7 @@ def initialize(request_client:) # ) # api.ats.tags.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -122,6 +133,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ats/types/account_details.rb b/lib/merge_ruby_client/ats/types/account_details.rb index f960fdb0..fd3b7f41 100644 --- a/lib/merge_ruby_client/ats/types/account_details.rb +++ b/lib/merge_ruby_client/ats/types/account_details.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "category_enum" +require "date" require "ostruct" require "json" @@ -32,6 +33,8 @@ class AccountDetails attr_reader :is_duplicate # @return [String] attr_reader :account_type + # @return [DateTime] The time at which account completes the linking flow. + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -54,10 +57,11 @@ class AccountDetails # incomplete Production Linked Accounts, and ignored duplicate Production Linked # Account sets. # @param account_type [String] + # @param completed_at [DateTime] The time at which account completes the linking flow. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::AccountDetails] def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OMIT, end_user_origin_id: OMIT, - end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, additional_properties: nil) + end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, completed_at: OMIT, additional_properties: nil) @id = id if id != OMIT @integration = integration if integration != OMIT @integration_slug = integration_slug if integration_slug != OMIT @@ -69,6 +73,7 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM @webhook_listener_url = webhook_listener_url if webhook_listener_url != OMIT @is_duplicate = is_duplicate if is_duplicate != OMIT @account_type = account_type if account_type != OMIT + @completed_at = completed_at if completed_at != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -81,7 +86,8 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM "status": status, "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -105,6 +111,7 @@ def self.from_json(json_object:) webhook_listener_url = parsed_json["webhook_listener_url"] is_duplicate = parsed_json["is_duplicate"] account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, integration: integration, @@ -117,6 +124,7 @@ def self.from_json(json_object:) webhook_listener_url: webhook_listener_url, is_duplicate: is_duplicate, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -146,6 +154,7 @@ def self.validate_raw(obj:) obj.webhook_listener_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_listener_url is not the expected type, validation failed.") obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.account_type&.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ats/types/account_details_and_actions.rb b/lib/merge_ruby_client/ats/types/account_details_and_actions.rb index 6a2c62c2..d046efcf 100644 --- a/lib/merge_ruby_client/ats/types/account_details_and_actions.rb +++ b/lib/merge_ruby_client/ats/types/account_details_and_actions.rb @@ -3,6 +3,7 @@ require_relative "category_enum" require_relative "account_details_and_actions_status_enum" require_relative "account_details_and_actions_integration" +require "date" require "ostruct" require "json" @@ -42,6 +43,8 @@ class AccountDetailsAndActions attr_reader :integration # @return [String] attr_reader :account_type + # @return [DateTime] + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -65,10 +68,11 @@ class AccountDetailsAndActions # Account sets. # @param integration [Merge::Ats::AccountDetailsAndActionsIntegration] # @param account_type [String] + # @param completed_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::AccountDetailsAndActions] def initialize(id:, status:, end_user_organization_name:, end_user_email_address:, webhook_listener_url:, - account_type:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) + account_type:, completed_at:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) @id = id @category = category if category != OMIT @status = status @@ -81,6 +85,7 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address @is_duplicate = is_duplicate if is_duplicate != OMIT @integration = integration if integration != OMIT @account_type = account_type + @completed_at = completed_at @additional_properties = additional_properties @_field_set = { "id": id, @@ -94,7 +99,8 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, "integration": integration, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -124,6 +130,7 @@ def self.from_json(json_object:) integration = Merge::Ats::AccountDetailsAndActionsIntegration.from_json(json_object: integration) end account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, category: category, @@ -137,6 +144,7 @@ def self.from_json(json_object:) is_duplicate: is_duplicate, integration: integration, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -167,6 +175,7 @@ def self.validate_raw(obj:) obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.integration.nil? || Merge::Ats::AccountDetailsAndActionsIntegration.validate_raw(obj: obj.integration) obj.account_type.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ats/types/account_details_and_actions_status_enum.rb b/lib/merge_ruby_client/ats/types/account_details_and_actions_status_enum.rb index 45946f3c..67e3aaa5 100644 --- a/lib/merge_ruby_client/ats/types/account_details_and_actions_status_enum.rb +++ b/lib/merge_ruby_client/ats/types/account_details_and_actions_status_enum.rb @@ -5,10 +5,12 @@ module Ats # - `COMPLETE` - COMPLETE # - `INCOMPLETE` - INCOMPLETE # - `RELINK_NEEDED` - RELINK_NEEDED + # - `IDLE` - IDLE class AccountDetailsAndActionsStatusEnum COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" + IDLE = "IDLE" end end end diff --git a/lib/merge_ruby_client/ats/types/account_integration.rb b/lib/merge_ruby_client/ats/types/account_integration.rb index 7fde80d5..c5d42715 100644 --- a/lib/merge_ruby_client/ats/types/account_integration.rb +++ b/lib/merge_ruby_client/ats/types/account_integration.rb @@ -17,10 +17,9 @@ class AccountIntegration # @return [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. attr_reader :categories - # @return [String] Company logo in rectangular shape. Upload an image with a clear - # background. + # @return [String] Company logo in rectangular shape. attr_reader :image - # @return [String] Company logo in square shape. Upload an image with a white background. + # @return [String] Company logo in square shape. attr_reader :square_image # @return [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. @@ -52,9 +51,8 @@ class AccountIntegration # SuccessFactors) # @param categories [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. - # @param image [String] Company logo in rectangular shape. Upload an image with a clear - # background. - # @param square_image [String] Company logo in square shape. Upload an image with a white background. + # @param image [String] Company logo in rectangular shape. + # @param square_image [String] Company logo in square shape. # @param color [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. # @param slug [String] diff --git a/lib/merge_ruby_client/ats/types/activity.rb b/lib/merge_ruby_client/ats/types/activity.rb index 0db193ac..23c59bc9 100644 --- a/lib/merge_ruby_client/ats/types/activity.rb +++ b/lib/merge_ruby_client/ats/types/activity.rb @@ -47,7 +47,9 @@ class Activity # @return [String] attr_reader :candidate # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -79,7 +81,9 @@ class Activity # - `PRIVATE` - PRIVATE # @param candidate [String] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/application.rb b/lib/merge_ruby_client/ats/types/application.rb index bb5755af..984a4b5e 100644 --- a/lib/merge_ruby_client/ats/types/application.rb +++ b/lib/merge_ruby_client/ats/types/application.rb @@ -52,7 +52,10 @@ class Application attr_reader :current_stage # @return [Merge::Ats::ApplicationRejectReason] The application's reason for rejection. attr_reader :reject_reason - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -80,7 +83,10 @@ class Application # @param screening_question_answers [Array] # @param current_stage [Merge::Ats::ApplicationCurrentStage] The application's current stage. # @param reject_reason [Merge::Ats::ApplicationRejectReason] The application's reason for rejection. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/attachment.rb b/lib/merge_ruby_client/ats/types/attachment.rb index 2ff7e260..7b7150fb 100644 --- a/lib/merge_ruby_client/ats/types/attachment.rb +++ b/lib/merge_ruby_client/ats/types/attachment.rb @@ -35,7 +35,10 @@ class Attachment # - `OFFER_LETTER` - OFFER_LETTER # - `OTHER` - OTHER attr_reader :attachment_type - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -61,7 +64,10 @@ class Attachment # - `COVER_LETTER` - COVER_LETTER # - `OFFER_LETTER` - OFFER_LETTER # - `OTHER` - OTHER - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/audit_log_event.rb b/lib/merge_ruby_client/ats/types/audit_log_event.rb index 2777ba66..16b87915 100644 --- a/lib/merge_ruby_client/ats/types/audit_log_event.rb +++ b/lib/merge_ruby_client/ats/types/audit_log_event.rb @@ -65,6 +65,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -136,6 +142,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK diff --git a/lib/merge_ruby_client/ats/types/candidate.rb b/lib/merge_ruby_client/ats/types/candidate.rb index 1351cdae..e29ccc19 100644 --- a/lib/merge_ruby_client/ats/types/candidate.rb +++ b/lib/merge_ruby_client/ats/types/candidate.rb @@ -61,7 +61,10 @@ class Candidate attr_reader :applications # @return [Array] Array of `Attachment` object IDs. attr_reader :attachments - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -95,7 +98,10 @@ class Candidate # @param tags [Array] Array of `Tag` names as strings. # @param applications [Array] Array of `Application` object IDs. # @param attachments [Array] Array of `Attachment` object IDs. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/department.rb b/lib/merge_ruby_client/ats/types/department.rb index 1fd37f84..c3069f19 100644 --- a/lib/merge_ruby_client/ats/types/department.rb +++ b/lib/merge_ruby_client/ats/types/department.rb @@ -25,7 +25,9 @@ class Department # @return [String] The department's name. attr_reader :name # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -45,7 +47,9 @@ class Department # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The department's name. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/eeoc.rb b/lib/merge_ruby_client/ats/types/eeoc.rb index 3b3236d4..15a2a3ed 100644 --- a/lib/merge_ruby_client/ats/types/eeoc.rb +++ b/lib/merge_ruby_client/ats/types/eeoc.rb @@ -64,7 +64,9 @@ class Eeoc # - `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER attr_reader :disability_status # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -111,7 +113,9 @@ class Eeoc # - `NO_I_DONT_HAVE_A_DISABILITY` - NO_I_DONT_HAVE_A_DISABILITY # - `I_DONT_WISH_TO_ANSWER` - I_DONT_WISH_TO_ANSWER # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/email_address.rb b/lib/merge_ruby_client/ats/types/email_address.rb index 47bf3c41..0e90d9aa 100644 --- a/lib/merge_ruby_client/ats/types/email_address.rb +++ b/lib/merge_ruby_client/ats/types/email_address.rb @@ -25,7 +25,9 @@ class EmailAddress # - `OTHER` - OTHER attr_reader :email_address_type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -43,7 +45,9 @@ class EmailAddress # - `WORK` - WORK # - `OTHER` - OTHER # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::EmailAddress] def initialize(created_at: OMIT, modified_at: OMIT, value: OMIT, email_address_type: OMIT, diff --git a/lib/merge_ruby_client/ats/types/event_type_enum.rb b/lib/merge_ruby_client/ats/types/event_type_enum.rb index ae809035..f5c2a5a8 100644 --- a/lib/merge_ruby_client/ats/types/event_type_enum.rb +++ b/lib/merge_ruby_client/ats/types/event_type_enum.rb @@ -40,6 +40,12 @@ module Ats # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -79,6 +85,9 @@ class EventTypeEnum CHANGED_LINKED_ACCOUNT_FIELD_MAPPING = "CHANGED_LINKED_ACCOUNT_FIELD_MAPPING" DELETED_INTEGRATION_WIDE_FIELD_MAPPING = "DELETED_INTEGRATION_WIDE_FIELD_MAPPING" DELETED_LINKED_ACCOUNT_FIELD_MAPPING = "DELETED_LINKED_ACCOUNT_FIELD_MAPPING" + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC" MUTED_ISSUE = "MUTED_ISSUE" GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK" diff --git a/lib/merge_ruby_client/ats/types/field_mapping_api_instance_remote_field.rb b/lib/merge_ruby_client/ats/types/field_mapping_api_instance_remote_field.rb index 35d7572e..deb58aeb 100644 --- a/lib/merge_ruby_client/ats/types/field_mapping_api_instance_remote_field.rb +++ b/lib/merge_ruby_client/ats/types/field_mapping_api_instance_remote_field.rb @@ -26,16 +26,18 @@ class FieldMappingApiInstanceRemoteField # @param remote_endpoint_info [Merge::Ats::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::FieldMappingApiInstanceRemoteField] - def initialize(remote_key_name:, schema:, remote_endpoint_info:, additional_properties: nil) - @remote_key_name = remote_key_name - @schema = schema + def initialize(remote_endpoint_info:, remote_key_name: OMIT, schema: OMIT, additional_properties: nil) + @remote_key_name = remote_key_name if remote_key_name != OMIT + @schema = schema if schema != OMIT @remote_endpoint_info = remote_endpoint_info @additional_properties = additional_properties @_field_set = { "remote_key_name": remote_key_name, "schema": schema, "remote_endpoint_info": remote_endpoint_info - } + }.reject do |_k, v| + v == OMIT + end end # Deserialize a JSON object to an instance of FieldMappingApiInstanceRemoteField @@ -75,8 +77,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") - obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.schema&.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") Merge::Ats::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) end end diff --git a/lib/merge_ruby_client/ats/types/field_permission_deserializer.rb b/lib/merge_ruby_client/ats/types/field_permission_deserializer.rb index f58777c0..4e2f1812 100644 --- a/lib/merge_ruby_client/ats/types/field_permission_deserializer.rb +++ b/lib/merge_ruby_client/ats/types/field_permission_deserializer.rb @@ -7,9 +7,9 @@ module Merge module Ats class FieldPermissionDeserializer # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializer OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::FieldPermissionDeserializer] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ats/types/field_permission_deserializer_request.rb b/lib/merge_ruby_client/ats/types/field_permission_deserializer_request.rb index a1ed7359..1df471fa 100644 --- a/lib/merge_ruby_client/ats/types/field_permission_deserializer_request.rb +++ b/lib/merge_ruby_client/ats/types/field_permission_deserializer_request.rb @@ -7,9 +7,9 @@ module Merge module Ats class FieldPermissionDeserializerRequest # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializerRequest OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::FieldPermissionDeserializerRequest] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ats/types/job.rb b/lib/merge_ruby_client/ats/types/job.rb index c7687e86..34f05f90 100644 --- a/lib/merge_ruby_client/ats/types/job.rb +++ b/lib/merge_ruby_client/ats/types/job.rb @@ -67,7 +67,9 @@ class Job # @return [Array] IDs of `RemoteUser` objects that serve as recruiters for this `Job`. attr_reader :recruiters # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -109,7 +111,9 @@ class Job # @param hiring_managers [Array] IDs of `RemoteUser` objects that serve as hiring managers for this `Job`. # @param recruiters [Array] IDs of `RemoteUser` objects that serve as recruiters for this `Job`. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/job_interview_stage.rb b/lib/merge_ruby_client/ats/types/job_interview_stage.rb index a3c44b07..cd004010 100644 --- a/lib/merge_ruby_client/ats/types/job_interview_stage.rb +++ b/lib/merge_ruby_client/ats/types/job_interview_stage.rb @@ -34,7 +34,9 @@ class JobInterviewStage # not return details on the order of stages, this field will not be populated. attr_reader :stage_order # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -58,7 +60,9 @@ class JobInterviewStage # @param stage_order [Integer] The stage’s order, with the lowest values ordered first. If the third-party does # not return details on the order of stages, this field will not be populated. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/job_posting.rb b/lib/merge_ruby_client/ats/types/job_posting.rb index 61062158..7a961e11 100644 --- a/lib/merge_ruby_client/ats/types/job_posting.rb +++ b/lib/merge_ruby_client/ats/types/job_posting.rb @@ -49,7 +49,9 @@ class JobPosting # @return [Boolean] Indicates whether the job posting is internal or external. attr_reader :is_internal # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -82,7 +84,9 @@ class JobPosting # @param remote_updated_at [DateTime] When the third party's job posting was updated. # @param is_internal [Boolean] Indicates whether the job posting is internal or external. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/language_enum.rb b/lib/merge_ruby_client/ats/types/language_enum.rb new file mode 100644 index 00000000..d04b041f --- /dev/null +++ b/lib/merge_ruby_client/ats/types/language_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Ats + # - `en` - en + # - `de` - de + class LanguageEnum + EN = "en" + DE = "de" + end + end +end diff --git a/lib/merge_ruby_client/ats/types/offer.rb b/lib/merge_ruby_client/ats/types/offer.rb index a5e9d6d7..0cd9ae11 100644 --- a/lib/merge_ruby_client/ats/types/offer.rb +++ b/lib/merge_ruby_client/ats/types/offer.rb @@ -49,7 +49,9 @@ class Offer # - `DEPRECATED` - DEPRECATED attr_reader :status # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -84,7 +86,9 @@ class Offer # - `SIGNED` - SIGNED # - `DEPRECATED` - DEPRECATED # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/office.rb b/lib/merge_ruby_client/ats/types/office.rb index dc1a6a01..5537e36b 100644 --- a/lib/merge_ruby_client/ats/types/office.rb +++ b/lib/merge_ruby_client/ats/types/office.rb @@ -27,7 +27,9 @@ class Office # @return [String] The office's location. attr_reader :location # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -48,7 +50,9 @@ class Office # @param name [String] The office's name. # @param location [String] The office's location. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/phone_number.rb b/lib/merge_ruby_client/ats/types/phone_number.rb index a40f989f..e1892686 100644 --- a/lib/merge_ruby_client/ats/types/phone_number.rb +++ b/lib/merge_ruby_client/ats/types/phone_number.rb @@ -27,7 +27,9 @@ class PhoneNumber # - `OTHER` - OTHER attr_reader :phone_number_type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -47,7 +49,9 @@ class PhoneNumber # - `SKYPE` - SKYPE # - `OTHER` - OTHER # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::PhoneNumber] def initialize(created_at: OMIT, modified_at: OMIT, value: OMIT, phone_number_type: OMIT, diff --git a/lib/merge_ruby_client/ats/types/reject_reason.rb b/lib/merge_ruby_client/ats/types/reject_reason.rb index a1596141..ee3d7047 100644 --- a/lib/merge_ruby_client/ats/types/reject_reason.rb +++ b/lib/merge_ruby_client/ats/types/reject_reason.rb @@ -26,7 +26,9 @@ class RejectReason # @return [String] The rejection reason’s name. attr_reader :name # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -46,7 +48,9 @@ class RejectReason # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The rejection reason’s name. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/remote_data.rb b/lib/merge_ruby_client/ats/types/remote_data.rb index 4b8e46ef..cf5ffb59 100644 --- a/lib/merge_ruby_client/ats/types/remote_data.rb +++ b/lib/merge_ruby_client/ats/types/remote_data.rb @@ -5,8 +5,14 @@ module Merge module Ats + # # The RemoteData Object + # ### Description + # The `RemoteData` object is used to represent the full data pulled from the + # third-party API for an object. + # ### Usage Example + # TODO class RemoteData - # @return [String] + # @return [String] The third-party API path that is being called. attr_reader :path # @return [Object] attr_reader :data @@ -18,7 +24,7 @@ class RemoteData OMIT = Object.new - # @param path [String] + # @param path [String] The third-party API path that is being called. # @param data [Object] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::RemoteData] diff --git a/lib/merge_ruby_client/ats/types/remote_user.rb b/lib/merge_ruby_client/ats/types/remote_user.rb index ac9a126d..7b31a216 100644 --- a/lib/merge_ruby_client/ats/types/remote_user.rb +++ b/lib/merge_ruby_client/ats/types/remote_user.rb @@ -41,7 +41,9 @@ class RemoteUser # - `INTERVIEWER` - INTERVIEWER attr_reader :access_role # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -71,7 +73,9 @@ class RemoteUser # - `LIMITED_TEAM_MEMBER` - LIMITED_TEAM_MEMBER # - `INTERVIEWER` - INTERVIEWER # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/scheduled_interview.rb b/lib/merge_ruby_client/ats/types/scheduled_interview.rb index a0d221b5..d35beab6 100644 --- a/lib/merge_ruby_client/ats/types/scheduled_interview.rb +++ b/lib/merge_ruby_client/ats/types/scheduled_interview.rb @@ -53,7 +53,9 @@ class ScheduledInterview # - `COMPLETE` - COMPLETE attr_reader :status # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -85,7 +87,9 @@ class ScheduledInterview # - `AWAITING_FEEDBACK` - AWAITING_FEEDBACK # - `COMPLETE` - COMPLETE # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/scorecard.rb b/lib/merge_ruby_client/ats/types/scorecard.rb index 7283e507..e4f5d560 100644 --- a/lib/merge_ruby_client/ats/types/scorecard.rb +++ b/lib/merge_ruby_client/ats/types/scorecard.rb @@ -45,7 +45,9 @@ class Scorecard # - `NO_DECISION` - NO_DECISION attr_reader :overall_recommendation # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -75,7 +77,9 @@ class Scorecard # - `STRONG_YES` - STRONG_YES # - `NO_DECISION` - NO_DECISION # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/screening_question.rb b/lib/merge_ruby_client/ats/types/screening_question.rb index b04e76e0..f7e81db0 100644 --- a/lib/merge_ruby_client/ats/types/screening_question.rb +++ b/lib/merge_ruby_client/ats/types/screening_question.rb @@ -44,7 +44,9 @@ class ScreeningQuestion # @return [Array] attr_reader :options # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -73,7 +75,9 @@ class ScreeningQuestion # @param required [Boolean] Whether or not the screening question is required. # @param options [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::ScreeningQuestion] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, job: OMIT, description: OMIT, diff --git a/lib/merge_ruby_client/ats/types/screening_question_answer.rb b/lib/merge_ruby_client/ats/types/screening_question_answer.rb index e5aa8423..52bb403b 100644 --- a/lib/merge_ruby_client/ats/types/screening_question_answer.rb +++ b/lib/merge_ruby_client/ats/types/screening_question_answer.rb @@ -29,7 +29,9 @@ class ScreeningQuestionAnswer # @return [String] The candidate’s response to the screening question. attr_reader :answer # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -48,7 +50,9 @@ class ScreeningQuestionAnswer # `screening_question_answers.question` to the `expand` query parameter. # @param answer [String] The candidate’s response to the screening question. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::ScreeningQuestionAnswer] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, question: OMIT, answer: OMIT, diff --git a/lib/merge_ruby_client/ats/types/screening_question_option.rb b/lib/merge_ruby_client/ats/types/screening_question_option.rb index db8a1fd6..2de8de0a 100644 --- a/lib/merge_ruby_client/ats/types/screening_question_option.rb +++ b/lib/merge_ruby_client/ats/types/screening_question_option.rb @@ -24,7 +24,9 @@ class ScreeningQuestionOption # @return [String] Available response options attr_reader :label # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -40,7 +42,9 @@ class ScreeningQuestionOption # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param label [String] Available response options # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::ScreeningQuestionOption] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, label: OMIT, diff --git a/lib/merge_ruby_client/ats/types/tag.rb b/lib/merge_ruby_client/ats/types/tag.rb index 6407980d..f9300b7a 100644 --- a/lib/merge_ruby_client/ats/types/tag.rb +++ b/lib/merge_ruby_client/ats/types/tag.rb @@ -21,7 +21,9 @@ class Tag # @return [String] The tag's name. attr_reader :name # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -40,7 +42,9 @@ class Tag # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The tag's name. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array Object}>] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ats/types/url.rb b/lib/merge_ruby_client/ats/types/url.rb index 89027513..f62bba83 100644 --- a/lib/merge_ruby_client/ats/types/url.rb +++ b/lib/merge_ruby_client/ats/types/url.rb @@ -30,7 +30,9 @@ class Url # - `JOB_POSTING` - JOB_POSTING attr_reader :url_type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -52,7 +54,9 @@ class Url # - `OTHER` - OTHER # - `JOB_POSTING` - JOB_POSTING # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ats::Url] def initialize(created_at: OMIT, modified_at: OMIT, value: OMIT, url_type: OMIT, remote_was_deleted: OMIT, diff --git a/lib/merge_ruby_client/ats/users/client.rb b/lib/merge_ruby_client/ats/users/client.rb index b5d05fc4..bd3515ee 100644 --- a/lib/merge_ruby_client/ats/users/client.rb +++ b/lib/merge_ruby_client/ats/users/client.rb @@ -24,9 +24,14 @@ def initialize(request_client:) # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. # @param email [String] If provided, will only return remote users with the given email address - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -46,7 +51,7 @@ def initialize(request_client:) # ) # api.ats.users.list def list(created_after: nil, created_before: nil, cursor: nil, email: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -64,6 +69,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, email: nil, inclu "email": email, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -138,9 +144,14 @@ def initialize(request_client:) # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. # @param email [String] If provided, will only return remote users with the given email address - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -160,7 +171,7 @@ def initialize(request_client:) # ) # api.ats.users.list def list(created_after: nil, created_before: nil, cursor: nil, email: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -179,6 +190,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, email: nil, inclu "email": email, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/crm/accounts/client.rb b/lib/merge_ruby_client/crm/accounts/client.rb index 7a195a55..c0f87c7f 100644 --- a/lib/merge_ruby_client/crm/accounts/client.rb +++ b/lib/merge_ruby_client/crm/accounts/client.rb @@ -30,11 +30,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.crm.accounts.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, name: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, name: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,6 +76,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "name": name, @@ -289,11 +295,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -307,7 +318,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.accounts.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -323,6 +334,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -352,11 +364,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -374,7 +391,7 @@ def initialize(request_client:) # ) # api.crm.accounts.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, name: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, name: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -394,6 +411,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "name": name, @@ -623,11 +641,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -641,7 +664,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.accounts.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -658,6 +681,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/association_types/client.rb b/lib/merge_ruby_client/crm/association_types/client.rb index 6db7eef2..4c4a411a 100644 --- a/lib/merge_ruby_client/crm/association_types/client.rb +++ b/lib/merge_ruby_client/crm/association_types/client.rb @@ -29,9 +29,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -47,7 +52,7 @@ def initialize(request_client:) # ) # api.crm.association_types.custom_object_classes_association_types_list(custom_object_class_id: "custom_object_class_id") def custom_object_classes_association_types_list(custom_object_class_id:, created_after: nil, - created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -65,6 +70,7 @@ def custom_object_classes_association_types_list(custom_object_class_id:, create "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -216,9 +222,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -234,7 +245,7 @@ def initialize(request_client:) # ) # api.crm.association_types.custom_object_classes_association_types_list(custom_object_class_id: "custom_object_class_id") def custom_object_classes_association_types_list(custom_object_class_id:, created_after: nil, - created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -253,6 +264,7 @@ def custom_object_classes_association_types_list(custom_object_class_id:, create "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/crm/associations/client.rb b/lib/merge_ruby_client/crm/associations/client.rb index e6f38b02..1b1ebf8b 100644 --- a/lib/merge_ruby_client/crm/associations/client.rb +++ b/lib/merge_ruby_client/crm/associations/client.rb @@ -28,9 +28,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -46,7 +51,7 @@ def initialize(request_client:) # ) # api.crm.associations.custom_object_classes_custom_objects_associations_list(custom_object_class_id: "custom_object_class_id", object_id: "object_id") def custom_object_classes_custom_objects_associations_list(custom_object_class_id:, object_id:, - association_type_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + association_type_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -65,6 +70,7 @@ def custom_object_classes_custom_objects_associations_list(custom_object_class_i "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -148,9 +154,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -166,7 +177,7 @@ def initialize(request_client:) # ) # api.crm.associations.custom_object_classes_custom_objects_associations_list(custom_object_class_id: "custom_object_class_id", object_id: "object_id") def custom_object_classes_custom_objects_associations_list(custom_object_class_id:, object_id:, - association_type_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + association_type_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -186,6 +197,7 @@ def custom_object_classes_custom_objects_associations_list(custom_object_class_i "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/crm/async_passthrough/client.rb b/lib/merge_ruby_client/crm/async_passthrough/client.rb index 605a714e..0e66e137 100644 --- a/lib/merge_ruby_client/crm/async_passthrough/client.rb +++ b/lib/merge_ruby_client/crm/async_passthrough/client.rb @@ -3,7 +3,7 @@ require_relative "../../../requests" require_relative "../types/data_passthrough_request" require_relative "../types/async_passthrough_reciept" -require_relative "../types/remote_response" +require_relative "types/async_passthrough_retrieve_response" require "async" module Merge @@ -61,7 +61,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Crm::RemoteResponse] + # @return [Merge::Crm::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -87,7 +87,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/crm/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Crm::RemoteResponse.from_json(json_object: response.body) + Merge::Crm::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end @@ -146,7 +146,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Crm::RemoteResponse] + # @return [Merge::Crm::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -173,7 +173,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/crm/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Crm::RemoteResponse.from_json(json_object: response.body) + Merge::Crm::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end end diff --git a/lib/merge_ruby_client/crm/async_passthrough/types/async_passthrough_retrieve_response.rb b/lib/merge_ruby_client/crm/async_passthrough/types/async_passthrough_retrieve_response.rb new file mode 100644 index 00000000..83f8387f --- /dev/null +++ b/lib/merge_ruby_client/crm/async_passthrough/types/async_passthrough_retrieve_response.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "../../types/remote_response" + +module Merge + module Crm + class AsyncPassthrough + class AsyncPassthroughRetrieveResponse + # Deserialize a JSON object to an instance of AsyncPassthroughRetrieveResponse + # + # @param json_object [String] + # @return [Merge::Crm::AsyncPassthrough::AsyncPassthroughRetrieveResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + Merge::Crm::RemoteResponse.validate_raw(obj: struct) + return Merge::Crm::RemoteResponse.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return Merge::Crm::RemoteResponse.validate_raw(obj: obj) + rescue StandardError + # noop + end + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end + end +end diff --git a/lib/merge_ruby_client/crm/audit_trail/client.rb b/lib/merge_ruby_client/crm/audit_trail/client.rb index bfc3edce..dc769fdc 100644 --- a/lib/merge_ruby_client/crm/audit_trail/client.rb +++ b/lib/merge_ruby_client/crm/audit_trail/client.rb @@ -38,7 +38,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` @@ -117,7 +120,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` diff --git a/lib/merge_ruby_client/crm/contacts/client.rb b/lib/merge_ruby_client/crm/contacts/client.rb index 08c43e8a..d0855b8b 100644 --- a/lib/merge_ruby_client/crm/contacts/client.rb +++ b/lib/merge_ruby_client/crm/contacts/client.rb @@ -36,11 +36,16 @@ def initialize(request_client:) # email_addresses can be separated by commas. # @param expand [Merge::Crm::Contacts::ContactsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -58,7 +63,7 @@ def initialize(request_client:) # ) # api.crm.contacts.list def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, email_addresses: nil, - expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) + expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -79,6 +84,7 @@ def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -332,11 +338,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -350,7 +361,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.contacts.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -366,6 +377,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -398,11 +410,16 @@ def initialize(request_client:) # email_addresses can be separated by commas. # @param expand [Merge::Crm::Contacts::ContactsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -420,7 +437,7 @@ def initialize(request_client:) # ) # api.crm.contacts.list def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, email_addresses: nil, - expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) + expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -442,6 +459,7 @@ def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -708,11 +726,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -726,7 +749,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.contacts.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -743,6 +766,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/custom_object_classes/client.rb b/lib/merge_ruby_client/crm/custom_object_classes/client.rb index 5542aced..15f4c103 100644 --- a/lib/merge_ruby_client/crm/custom_object_classes/client.rb +++ b/lib/merge_ruby_client/crm/custom_object_classes/client.rb @@ -25,9 +25,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -43,7 +48,7 @@ def initialize(request_client:) # ) # api.crm.custom_object_classes.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -61,6 +66,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -131,9 +137,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -149,7 +160,7 @@ def initialize(request_client:) # ) # api.crm.custom_object_classes.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -168,6 +179,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/crm/custom_objects/client.rb b/lib/merge_ruby_client/crm/custom_objects/client.rb index 760544d7..034496ea 100644 --- a/lib/merge_ruby_client/crm/custom_objects/client.rb +++ b/lib/merge_ruby_client/crm/custom_objects/client.rb @@ -28,11 +28,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -48,7 +53,7 @@ def initialize(request_client:) # ) # api.crm.custom_objects.custom_object_classes_custom_objects_list(custom_object_class_id: "custom_object_class_id") def custom_object_classes_custom_objects_list(custom_object_class_id:, created_after: nil, created_before: nil, - cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -66,6 +71,7 @@ def custom_object_classes_custom_objects_list(custom_object_class_id:, created_a "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -194,11 +200,16 @@ def custom_object_classes_custom_objects_meta_post_retrieve(custom_object_class_ # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -212,7 +223,7 @@ def custom_object_classes_custom_objects_meta_post_retrieve(custom_object_class_ # ) # api.crm.custom_objects.custom_object_classes_custom_objects_remote_field_classes_list def custom_object_classes_custom_objects_remote_field_classes_list(cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -228,6 +239,7 @@ def custom_object_classes_custom_objects_remote_field_classes_list(cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -256,11 +268,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -276,7 +293,7 @@ def initialize(request_client:) # ) # api.crm.custom_objects.custom_object_classes_custom_objects_list(custom_object_class_id: "custom_object_class_id") def custom_object_classes_custom_objects_list(custom_object_class_id:, created_after: nil, created_before: nil, - cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + cursor: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -295,6 +312,7 @@ def custom_object_classes_custom_objects_list(custom_object_class_id:, created_a "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -430,11 +448,16 @@ def custom_object_classes_custom_objects_meta_post_retrieve(custom_object_class_ # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -448,7 +471,7 @@ def custom_object_classes_custom_objects_meta_post_retrieve(custom_object_class_ # ) # api.crm.custom_objects.custom_object_classes_custom_objects_remote_field_classes_list def custom_object_classes_custom_objects_remote_field_classes_list(cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -465,6 +488,7 @@ def custom_object_classes_custom_objects_remote_field_classes_list(cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/engagement_types/client.rb b/lib/merge_ruby_client/crm/engagement_types/client.rb index b2672463..05038c8d 100644 --- a/lib/merge_ruby_client/crm/engagement_types/client.rb +++ b/lib/merge_ruby_client/crm/engagement_types/client.rb @@ -24,11 +24,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.crm.engagement_types.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -62,6 +67,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -117,11 +123,16 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -135,7 +146,7 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # ) # api.crm.engagement_types.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -151,6 +162,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -178,11 +190,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -198,7 +215,7 @@ def initialize(request_client:) # ) # api.crm.engagement_types.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -217,6 +234,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -275,11 +293,16 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -293,7 +316,7 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # ) # api.crm.engagement_types.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -310,6 +333,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/engagements/client.rb b/lib/merge_ruby_client/crm/engagements/client.rb index 3f49acb9..da4fb94f 100644 --- a/lib/merge_ruby_client/crm/engagements/client.rb +++ b/lib/merge_ruby_client/crm/engagements/client.rb @@ -32,11 +32,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Engagements::EngagementsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -54,7 +59,7 @@ def initialize(request_client:) # ) # api.crm.engagements.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -73,6 +78,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -293,11 +299,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -311,7 +322,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.engagements.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -327,6 +338,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -356,11 +368,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Engagements::EngagementsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -378,7 +395,7 @@ def initialize(request_client:) # ) # api.crm.engagements.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -398,6 +415,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -629,11 +647,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -647,7 +670,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.engagements.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -664,6 +687,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/field_mapping/client.rb b/lib/merge_ruby_client/crm/field_mapping/client.rb index 3cbb7764..9f0e90fb 100644 --- a/lib/merge_ruby_client/crm/field_mapping/client.rb +++ b/lib/merge_ruby_client/crm/field_mapping/client.rb @@ -23,6 +23,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::FieldMappingApiInstanceResponse] # @example @@ -32,7 +36,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.crm.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -42,9 +46,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -57,6 +62,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -82,7 +91,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -92,9 +101,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, @@ -280,6 +290,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::FieldMappingApiInstanceResponse] # @example @@ -289,7 +303,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.crm.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -300,9 +314,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -316,6 +331,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -341,7 +360,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -352,9 +371,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, diff --git a/lib/merge_ruby_client/crm/force_resync/client.rb b/lib/merge_ruby_client/crm/force_resync/client.rb index 4ee400f4..3e33f1de 100644 --- a/lib/merge_ruby_client/crm/force_resync/client.rb +++ b/lib/merge_ruby_client/crm/force_resync/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # @@ -70,7 +70,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # diff --git a/lib/merge_ruby_client/crm/leads/client.rb b/lib/merge_ruby_client/crm/leads/client.rb index 61d24b20..85596e48 100644 --- a/lib/merge_ruby_client/crm/leads/client.rb +++ b/lib/merge_ruby_client/crm/leads/client.rb @@ -35,11 +35,16 @@ def initialize(request_client:) # email_addresses can be separated by commas. # @param expand [Merge::Crm::Leads::LeadsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -58,7 +63,7 @@ def initialize(request_client:) # ) # api.crm.leads.list def list(converted_account_id: nil, converted_contact_id: nil, created_after: nil, created_before: nil, - cursor: nil, email_addresses: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) + cursor: nil, email_addresses: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -80,6 +85,7 @@ def list(converted_account_id: nil, converted_contact_id: nil, created_after: ni "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "owner_id": owner_id, @@ -222,11 +228,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -240,7 +251,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.leads.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -256,6 +267,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -289,11 +301,16 @@ def initialize(request_client:) # email_addresses can be separated by commas. # @param expand [Merge::Crm::Leads::LeadsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -312,7 +329,7 @@ def initialize(request_client:) # ) # api.crm.leads.list def list(converted_account_id: nil, converted_contact_id: nil, created_after: nil, created_before: nil, - cursor: nil, email_addresses: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) + cursor: nil, email_addresses: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, phone_numbers: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -335,6 +352,7 @@ def list(converted_account_id: nil, converted_contact_id: nil, created_after: ni "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "owner_id": owner_id, @@ -484,11 +502,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -502,7 +525,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.leads.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -519,6 +542,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/link_token/client.rb b/lib/merge_ruby_client/crm/link_token/client.rb index f280a65e..b1bd2048 100644 --- a/lib/merge_ruby_client/crm/link_token/client.rb +++ b/lib/merge_ruby_client/crm/link_token/client.rb @@ -3,6 +3,7 @@ require_relative "../../../requests" require_relative "../types/categories_enum" require_relative "../types/common_model_scopes_body_request" +require_relative "../types/language_enum" require_relative "../types/link_token" require "async" @@ -48,7 +49,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Crm::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::LinkToken] @@ -65,7 +71,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -91,6 +97,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/crm/v1/link-token" @@ -139,7 +146,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Crm::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::LinkToken] @@ -156,7 +168,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -183,6 +195,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/crm/v1/link-token" diff --git a/lib/merge_ruby_client/crm/linked_accounts/client.rb b/lib/merge_ruby_client/crm/linked_accounts/client.rb index f7d6d23e..875bf5c4 100644 --- a/lib/merge_ruby_client/crm/linked_accounts/client.rb +++ b/lib/merge_ruby_client/crm/linked_accounts/client.rb @@ -47,7 +47,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::PaginatedAccountDetailsAndActionsList] # @example @@ -133,7 +133,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::PaginatedAccountDetailsAndActionsList] # @example diff --git a/lib/merge_ruby_client/crm/notes/client.rb b/lib/merge_ruby_client/crm/notes/client.rb index ca017f80..2cb404f0 100644 --- a/lib/merge_ruby_client/crm/notes/client.rb +++ b/lib/merge_ruby_client/crm/notes/client.rb @@ -33,11 +33,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Notes::NotesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -55,7 +60,7 @@ def initialize(request_client:) # ) # api.crm.notes.list def list(account_id: nil, contact_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, opportunity_id: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, opportunity_id: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -76,6 +81,7 @@ def list(account_id: nil, contact_id: nil, created_after: nil, created_before: n "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "opportunity_id": opportunity_id, @@ -211,11 +217,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -229,7 +240,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.notes.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -245,6 +256,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -276,11 +288,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Notes::NotesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -298,7 +315,7 @@ def initialize(request_client:) # ) # api.crm.notes.list def list(account_id: nil, contact_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, opportunity_id: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, opportunity_id: nil, owner_id: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -320,6 +337,7 @@ def list(account_id: nil, contact_id: nil, created_after: nil, created_before: n "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "opportunity_id": opportunity_id, @@ -462,11 +480,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -480,7 +503,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.notes.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -497,6 +520,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/opportunities/client.rb b/lib/merge_ruby_client/crm/opportunities/client.rb index b0767c67..b28c05b2 100644 --- a/lib/merge_ruby_client/crm/opportunities/client.rb +++ b/lib/merge_ruby_client/crm/opportunities/client.rb @@ -34,11 +34,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Opportunities::OpportunitiesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -67,7 +72,7 @@ def initialize(request_client:) # ) # api.crm.opportunities.list def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, remote_created_after: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, stage_id: nil, status: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, remote_created_after: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, stage_id: nil, status: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -87,6 +92,7 @@ def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "owner_id": owner_id, @@ -318,11 +324,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -336,7 +347,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.opportunities.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -352,6 +363,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -382,11 +394,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Opportunities::OpportunitiesListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -415,7 +432,7 @@ def initialize(request_client:) # ) # api.crm.opportunities.list def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, remote_created_after: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, stage_id: nil, status: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, owner_id: nil, page_size: nil, remote_created_after: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, stage_id: nil, status: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -436,6 +453,7 @@ def list(account_id: nil, created_after: nil, created_before: nil, cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "owner_id": owner_id, @@ -678,11 +696,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -696,7 +719,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.opportunities.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -713,6 +736,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/scopes/client.rb b/lib/merge_ruby_client/crm/scopes/client.rb index 08d07b68..e9d46945 100644 --- a/lib/merge_ruby_client/crm/scopes/client.rb +++ b/lib/merge_ruby_client/crm/scopes/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::CommonModelScopeApi] @@ -53,7 +53,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::CommonModelScopeApi] @@ -87,14 +87,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Crm::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::CommonModelScopeApi] # @example @@ -103,7 +103,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.crm.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.crm.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -136,7 +136,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::CommonModelScopeApi] @@ -172,7 +172,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::CommonModelScopeApi] @@ -208,14 +208,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Crm::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Crm::CommonModelScopeApi] # @example @@ -224,7 +224,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.crm.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.crm.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) Async do response = @request_client.conn.post do |req| diff --git a/lib/merge_ruby_client/crm/stages/client.rb b/lib/merge_ruby_client/crm/stages/client.rb index 73a87bde..67ac86b5 100644 --- a/lib/merge_ruby_client/crm/stages/client.rb +++ b/lib/merge_ruby_client/crm/stages/client.rb @@ -24,11 +24,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.crm.stages.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -62,6 +67,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -117,11 +123,16 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -135,7 +146,7 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # ) # api.crm.stages.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -151,6 +162,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -178,11 +190,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -198,7 +215,7 @@ def initialize(request_client:) # ) # api.crm.stages.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -217,6 +234,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -275,11 +293,16 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -293,7 +316,7 @@ def retrieve(id:, include_remote_data: nil, include_remote_fields: nil, request_ # ) # api.crm.stages.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -310,6 +333,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/tasks/client.rb b/lib/merge_ruby_client/crm/tasks/client.rb index 4ce1201f..7f28d006 100644 --- a/lib/merge_ruby_client/crm/tasks/client.rb +++ b/lib/merge_ruby_client/crm/tasks/client.rb @@ -32,11 +32,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Tasks::TasksListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.crm.tasks.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,6 +76,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -287,11 +293,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -305,7 +316,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.tasks.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -321,6 +332,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -350,11 +362,16 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Crm::Tasks::TasksListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -370,7 +387,7 @@ def initialize(request_client:) # ) # api.crm.tasks.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -390,6 +407,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -617,11 +635,16 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -635,7 +658,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.crm.tasks.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -652,6 +675,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/crm/types/account.rb b/lib/merge_ruby_client/crm/types/account.rb index 09f2f4ed..d14bed05 100644 --- a/lib/merge_ruby_client/crm/types/account.rb +++ b/lib/merge_ruby_client/crm/types/account.rb @@ -48,7 +48,10 @@ class Account attr_reader :remote_updated_at # @return [DateTime] When the third party's account was created. attr_reader :remote_created_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -80,7 +83,10 @@ class Account # occurs in an account. # @param remote_updated_at [DateTime] When the CRM system account data was last modified by a user with a login. # @param remote_created_at [DateTime] When the third party's account was created. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/account_details.rb b/lib/merge_ruby_client/crm/types/account_details.rb index a56fb253..05e42bf2 100644 --- a/lib/merge_ruby_client/crm/types/account_details.rb +++ b/lib/merge_ruby_client/crm/types/account_details.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "category_enum" +require "date" require "ostruct" require "json" @@ -32,6 +33,8 @@ class AccountDetails attr_reader :is_duplicate # @return [String] attr_reader :account_type + # @return [DateTime] The time at which account completes the linking flow. + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -54,10 +57,11 @@ class AccountDetails # incomplete Production Linked Accounts, and ignored duplicate Production Linked # Account sets. # @param account_type [String] + # @param completed_at [DateTime] The time at which account completes the linking flow. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Crm::AccountDetails] def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OMIT, end_user_origin_id: OMIT, - end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, additional_properties: nil) + end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, completed_at: OMIT, additional_properties: nil) @id = id if id != OMIT @integration = integration if integration != OMIT @integration_slug = integration_slug if integration_slug != OMIT @@ -69,6 +73,7 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM @webhook_listener_url = webhook_listener_url if webhook_listener_url != OMIT @is_duplicate = is_duplicate if is_duplicate != OMIT @account_type = account_type if account_type != OMIT + @completed_at = completed_at if completed_at != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -81,7 +86,8 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM "status": status, "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -105,6 +111,7 @@ def self.from_json(json_object:) webhook_listener_url = parsed_json["webhook_listener_url"] is_duplicate = parsed_json["is_duplicate"] account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, integration: integration, @@ -117,6 +124,7 @@ def self.from_json(json_object:) webhook_listener_url: webhook_listener_url, is_duplicate: is_duplicate, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -146,6 +154,7 @@ def self.validate_raw(obj:) obj.webhook_listener_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_listener_url is not the expected type, validation failed.") obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.account_type&.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/crm/types/account_details_and_actions.rb b/lib/merge_ruby_client/crm/types/account_details_and_actions.rb index 49bacd6d..339c702e 100644 --- a/lib/merge_ruby_client/crm/types/account_details_and_actions.rb +++ b/lib/merge_ruby_client/crm/types/account_details_and_actions.rb @@ -3,6 +3,7 @@ require_relative "category_enum" require_relative "account_details_and_actions_status_enum" require_relative "account_details_and_actions_integration" +require "date" require "ostruct" require "json" @@ -42,6 +43,8 @@ class AccountDetailsAndActions attr_reader :integration # @return [String] attr_reader :account_type + # @return [DateTime] + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -65,10 +68,11 @@ class AccountDetailsAndActions # Account sets. # @param integration [Merge::Crm::AccountDetailsAndActionsIntegration] # @param account_type [String] + # @param completed_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Crm::AccountDetailsAndActions] def initialize(id:, status:, end_user_organization_name:, end_user_email_address:, webhook_listener_url:, - account_type:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) + account_type:, completed_at:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) @id = id @category = category if category != OMIT @status = status @@ -81,6 +85,7 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address @is_duplicate = is_duplicate if is_duplicate != OMIT @integration = integration if integration != OMIT @account_type = account_type + @completed_at = completed_at @additional_properties = additional_properties @_field_set = { "id": id, @@ -94,7 +99,8 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, "integration": integration, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -124,6 +130,7 @@ def self.from_json(json_object:) integration = Merge::Crm::AccountDetailsAndActionsIntegration.from_json(json_object: integration) end account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, category: category, @@ -137,6 +144,7 @@ def self.from_json(json_object:) is_duplicate: is_duplicate, integration: integration, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -167,6 +175,7 @@ def self.validate_raw(obj:) obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.integration.nil? || Merge::Crm::AccountDetailsAndActionsIntegration.validate_raw(obj: obj.integration) obj.account_type.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/crm/types/account_details_and_actions_status_enum.rb b/lib/merge_ruby_client/crm/types/account_details_and_actions_status_enum.rb index 174397a0..386ca4f4 100644 --- a/lib/merge_ruby_client/crm/types/account_details_and_actions_status_enum.rb +++ b/lib/merge_ruby_client/crm/types/account_details_and_actions_status_enum.rb @@ -5,10 +5,12 @@ module Crm # - `COMPLETE` - COMPLETE # - `INCOMPLETE` - INCOMPLETE # - `RELINK_NEEDED` - RELINK_NEEDED + # - `IDLE` - IDLE class AccountDetailsAndActionsStatusEnum COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" + IDLE = "IDLE" end end end diff --git a/lib/merge_ruby_client/crm/types/account_integration.rb b/lib/merge_ruby_client/crm/types/account_integration.rb index 97bfedcb..d40e04f6 100644 --- a/lib/merge_ruby_client/crm/types/account_integration.rb +++ b/lib/merge_ruby_client/crm/types/account_integration.rb @@ -17,10 +17,9 @@ class AccountIntegration # @return [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. attr_reader :categories - # @return [String] Company logo in rectangular shape. Upload an image with a clear - # background. + # @return [String] Company logo in rectangular shape. attr_reader :image - # @return [String] Company logo in square shape. Upload an image with a white background. + # @return [String] Company logo in square shape. attr_reader :square_image # @return [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. @@ -52,9 +51,8 @@ class AccountIntegration # SuccessFactors) # @param categories [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. - # @param image [String] Company logo in rectangular shape. Upload an image with a clear - # background. - # @param square_image [String] Company logo in square shape. Upload an image with a white background. + # @param image [String] Company logo in rectangular shape. + # @param square_image [String] Company logo in square shape. # @param color [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. # @param slug [String] diff --git a/lib/merge_ruby_client/crm/types/audit_log_event.rb b/lib/merge_ruby_client/crm/types/audit_log_event.rb index 8b809475..4a2d0611 100644 --- a/lib/merge_ruby_client/crm/types/audit_log_event.rb +++ b/lib/merge_ruby_client/crm/types/audit_log_event.rb @@ -65,6 +65,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -136,6 +142,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK diff --git a/lib/merge_ruby_client/crm/types/contact.rb b/lib/merge_ruby_client/crm/types/contact.rb index 5dd6abbb..8dafdc4d 100644 --- a/lib/merge_ruby_client/crm/types/contact.rb +++ b/lib/merge_ruby_client/crm/types/contact.rb @@ -46,7 +46,10 @@ class Contact attr_reader :last_activity_at # @return [DateTime] When the third party's contact was created. attr_reader :remote_created_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -75,7 +78,10 @@ class Contact # @param phone_numbers [Array] # @param last_activity_at [DateTime] When the contact's last activity occurred. # @param remote_created_at [DateTime] When the third party's contact was created. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/engagement.rb b/lib/merge_ruby_client/crm/types/engagement.rb index 774c5853..3baa986c 100644 --- a/lib/merge_ruby_client/crm/types/engagement.rb +++ b/lib/merge_ruby_client/crm/types/engagement.rb @@ -49,7 +49,9 @@ class Engagement # @return [Array] attr_reader :contacts # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -81,7 +83,9 @@ class Engagement # @param account [Merge::Crm::EngagementAccount] The account of the engagement. # @param contacts [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/event_type_enum.rb b/lib/merge_ruby_client/crm/types/event_type_enum.rb index ac9e5ba5..aa8d7301 100644 --- a/lib/merge_ruby_client/crm/types/event_type_enum.rb +++ b/lib/merge_ruby_client/crm/types/event_type_enum.rb @@ -40,6 +40,12 @@ module Crm # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -79,6 +85,9 @@ class EventTypeEnum CHANGED_LINKED_ACCOUNT_FIELD_MAPPING = "CHANGED_LINKED_ACCOUNT_FIELD_MAPPING" DELETED_INTEGRATION_WIDE_FIELD_MAPPING = "DELETED_INTEGRATION_WIDE_FIELD_MAPPING" DELETED_LINKED_ACCOUNT_FIELD_MAPPING = "DELETED_LINKED_ACCOUNT_FIELD_MAPPING" + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC" MUTED_ISSUE = "MUTED_ISSUE" GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK" diff --git a/lib/merge_ruby_client/crm/types/field_mapping_api_instance_remote_field.rb b/lib/merge_ruby_client/crm/types/field_mapping_api_instance_remote_field.rb index e0915f82..8b4fa395 100644 --- a/lib/merge_ruby_client/crm/types/field_mapping_api_instance_remote_field.rb +++ b/lib/merge_ruby_client/crm/types/field_mapping_api_instance_remote_field.rb @@ -26,16 +26,18 @@ class FieldMappingApiInstanceRemoteField # @param remote_endpoint_info [Merge::Crm::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Crm::FieldMappingApiInstanceRemoteField] - def initialize(remote_key_name:, schema:, remote_endpoint_info:, additional_properties: nil) - @remote_key_name = remote_key_name - @schema = schema + def initialize(remote_endpoint_info:, remote_key_name: OMIT, schema: OMIT, additional_properties: nil) + @remote_key_name = remote_key_name if remote_key_name != OMIT + @schema = schema if schema != OMIT @remote_endpoint_info = remote_endpoint_info @additional_properties = additional_properties @_field_set = { "remote_key_name": remote_key_name, "schema": schema, "remote_endpoint_info": remote_endpoint_info - } + }.reject do |_k, v| + v == OMIT + end end # Deserialize a JSON object to an instance of FieldMappingApiInstanceRemoteField @@ -75,8 +77,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") - obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.schema&.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") Merge::Crm::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) end end diff --git a/lib/merge_ruby_client/crm/types/field_permission_deserializer.rb b/lib/merge_ruby_client/crm/types/field_permission_deserializer.rb index be30a8c3..cd702abe 100644 --- a/lib/merge_ruby_client/crm/types/field_permission_deserializer.rb +++ b/lib/merge_ruby_client/crm/types/field_permission_deserializer.rb @@ -7,9 +7,9 @@ module Merge module Crm class FieldPermissionDeserializer # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializer OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Crm::FieldPermissionDeserializer] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/crm/types/field_permission_deserializer_request.rb b/lib/merge_ruby_client/crm/types/field_permission_deserializer_request.rb index 9e65e27a..fdbf76d6 100644 --- a/lib/merge_ruby_client/crm/types/field_permission_deserializer_request.rb +++ b/lib/merge_ruby_client/crm/types/field_permission_deserializer_request.rb @@ -7,9 +7,9 @@ module Merge module Crm class FieldPermissionDeserializerRequest # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializerRequest OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Crm::FieldPermissionDeserializerRequest] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/crm/types/language_enum.rb b/lib/merge_ruby_client/crm/types/language_enum.rb new file mode 100644 index 00000000..832c1189 --- /dev/null +++ b/lib/merge_ruby_client/crm/types/language_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Crm + # - `en` - en + # - `de` - de + class LanguageEnum + EN = "en" + DE = "de" + end + end +end diff --git a/lib/merge_ruby_client/crm/types/lead.rb b/lib/merge_ruby_client/crm/types/lead.rb index 8c71de7c..a6da4965 100644 --- a/lib/merge_ruby_client/crm/types/lead.rb +++ b/lib/merge_ruby_client/crm/types/lead.rb @@ -57,7 +57,10 @@ class Lead attr_reader :converted_contact # @return [Merge::Crm::LeadConvertedAccount] The account of the converted lead. attr_reader :converted_account - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -91,7 +94,10 @@ class Lead # @param converted_date [DateTime] When the lead was converted. # @param converted_contact [Merge::Crm::LeadConvertedContact] The contact of the converted lead. # @param converted_account [Merge::Crm::LeadConvertedAccount] The account of the converted lead. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/note.rb b/lib/merge_ruby_client/crm/types/note.rb index 24951de9..a2634248 100644 --- a/lib/merge_ruby_client/crm/types/note.rb +++ b/lib/merge_ruby_client/crm/types/note.rb @@ -40,7 +40,10 @@ class Note attr_reader :remote_updated_at # @return [DateTime] When the third party's lead was created. attr_reader :remote_created_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -67,7 +70,10 @@ class Note # @param opportunity [Merge::Crm::NoteOpportunity] The note's opportunity. # @param remote_updated_at [DateTime] When the third party's lead was updated. # @param remote_created_at [DateTime] When the third party's lead was created. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/opportunity.rb b/lib/merge_ruby_client/crm/types/opportunity.rb index a2965599..3e70638b 100644 --- a/lib/merge_ruby_client/crm/types/opportunity.rb +++ b/lib/merge_ruby_client/crm/types/opportunity.rb @@ -50,7 +50,10 @@ class Opportunity attr_reader :close_date # @return [DateTime] When the third party's opportunity was created. attr_reader :remote_created_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -83,7 +86,10 @@ class Opportunity # @param last_activity_at [DateTime] When the opportunity's last activity occurred. # @param close_date [DateTime] When the opportunity was closed. # @param remote_created_at [DateTime] When the third party's opportunity was created. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/remote_data.rb b/lib/merge_ruby_client/crm/types/remote_data.rb index c3b01f06..ff339eec 100644 --- a/lib/merge_ruby_client/crm/types/remote_data.rb +++ b/lib/merge_ruby_client/crm/types/remote_data.rb @@ -5,8 +5,14 @@ module Merge module Crm + # # The RemoteData Object + # ### Description + # The `RemoteData` object is used to represent the full data pulled from the + # third-party API for an object. + # ### Usage Example + # TODO class RemoteData - # @return [String] + # @return [String] The third-party API path that is being called. attr_reader :path # @return [Object] attr_reader :data @@ -18,7 +24,7 @@ class RemoteData OMIT = Object.new - # @param path [String] + # @param path [String] The third-party API path that is being called. # @param data [Object] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Crm::RemoteData] diff --git a/lib/merge_ruby_client/crm/types/stage.rb b/lib/merge_ruby_client/crm/types/stage.rb index 2f2813e5..c5fac1ca 100644 --- a/lib/merge_ruby_client/crm/types/stage.rb +++ b/lib/merge_ruby_client/crm/types/stage.rb @@ -25,7 +25,9 @@ class Stage # @return [String] The stage's name. attr_reader :name # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -47,7 +49,9 @@ class Stage # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The stage's name. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/task.rb b/lib/merge_ruby_client/crm/types/task.rb index 38caf190..ee5f020c 100644 --- a/lib/merge_ruby_client/crm/types/task.rb +++ b/lib/merge_ruby_client/crm/types/task.rb @@ -45,7 +45,9 @@ class Task # - `CLOSED` - CLOSED attr_reader :status # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -76,7 +78,9 @@ class Task # - `OPEN` - OPEN # - `CLOSED` - CLOSED # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/types/user.rb b/lib/merge_ruby_client/crm/types/user.rb index 1c758898..9ff55ea9 100644 --- a/lib/merge_ruby_client/crm/types/user.rb +++ b/lib/merge_ruby_client/crm/types/user.rb @@ -29,7 +29,9 @@ class User # @return [Boolean] Whether or not the user is active. attr_reader :is_active # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -53,7 +55,9 @@ class User # @param email [String] The user's email address. # @param is_active [Boolean] Whether or not the user is active. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param remote_fields [Array] diff --git a/lib/merge_ruby_client/crm/users/client.rb b/lib/merge_ruby_client/crm/users/client.rb index a68fc6d9..9271b970 100644 --- a/lib/merge_ruby_client/crm/users/client.rb +++ b/lib/merge_ruby_client/crm/users/client.rb @@ -25,11 +25,17 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param email [String] If provided, will only return users with this email. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,8 +50,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.crm.users.list - def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + def list(created_after: nil, created_before: nil, cursor: nil, email: nil, include_deleted_data: nil, + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -60,9 +66,11 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "created_after": created_after, "created_before": created_before, "cursor": cursor, + "email": email, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -154,11 +162,16 @@ def ignore_create(model_id:, request:, request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -172,7 +185,7 @@ def ignore_create(model_id:, request:, request_options: nil) # ) # api.crm.users.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -188,6 +201,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -215,11 +229,17 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param email [String] If provided, will only return users with this email. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -234,8 +254,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.crm.users.list - def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + def list(created_after: nil, created_before: nil, cursor: nil, email: nil, include_deleted_data: nil, + include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -251,9 +271,11 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "created_after": created_after, "created_before": created_before, "cursor": cursor, + "email": email, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -350,11 +372,16 @@ def ignore_create(model_id:, request:, request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -368,7 +395,7 @@ def ignore_create(model_id:, request:, request_options: nil) # ) # api.crm.users.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - include_remote_fields: nil, is_common_model_field: nil, page_size: nil, request_options: nil) + include_remote_fields: nil, include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -385,6 +412,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/filestorage/async_passthrough/client.rb b/lib/merge_ruby_client/filestorage/async_passthrough/client.rb index 741f21bd..cc41e323 100644 --- a/lib/merge_ruby_client/filestorage/async_passthrough/client.rb +++ b/lib/merge_ruby_client/filestorage/async_passthrough/client.rb @@ -3,7 +3,7 @@ require_relative "../../../requests" require_relative "../types/data_passthrough_request" require_relative "../types/async_passthrough_reciept" -require_relative "../types/remote_response" +require_relative "types/async_passthrough_retrieve_response" require "async" module Merge @@ -61,7 +61,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Filestorage::RemoteResponse] + # @return [Merge::Filestorage::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -87,7 +87,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/filestorage/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Filestorage::RemoteResponse.from_json(json_object: response.body) + Merge::Filestorage::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end @@ -146,7 +146,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Filestorage::RemoteResponse] + # @return [Merge::Filestorage::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -173,7 +173,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/filestorage/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Filestorage::RemoteResponse.from_json(json_object: response.body) + Merge::Filestorage::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end end diff --git a/lib/merge_ruby_client/filestorage/async_passthrough/types/async_passthrough_retrieve_response.rb b/lib/merge_ruby_client/filestorage/async_passthrough/types/async_passthrough_retrieve_response.rb new file mode 100644 index 00000000..a689b7db --- /dev/null +++ b/lib/merge_ruby_client/filestorage/async_passthrough/types/async_passthrough_retrieve_response.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "../../types/remote_response" + +module Merge + module Filestorage + class AsyncPassthrough + class AsyncPassthroughRetrieveResponse + # Deserialize a JSON object to an instance of AsyncPassthroughRetrieveResponse + # + # @param json_object [String] + # @return [Merge::Filestorage::AsyncPassthrough::AsyncPassthroughRetrieveResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + Merge::Filestorage::RemoteResponse.validate_raw(obj: struct) + return Merge::Filestorage::RemoteResponse.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return Merge::Filestorage::RemoteResponse.validate_raw(obj: obj) + rescue StandardError + # noop + end + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end + end +end diff --git a/lib/merge_ruby_client/filestorage/audit_trail/client.rb b/lib/merge_ruby_client/filestorage/audit_trail/client.rb index 9f2a49f4..921758d0 100644 --- a/lib/merge_ruby_client/filestorage/audit_trail/client.rb +++ b/lib/merge_ruby_client/filestorage/audit_trail/client.rb @@ -38,7 +38,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` @@ -117,7 +120,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` diff --git a/lib/merge_ruby_client/filestorage/drives/client.rb b/lib/merge_ruby_client/filestorage/drives/client.rb index b6f84c4e..61795fd4 100644 --- a/lib/merge_ruby_client/filestorage/drives/client.rb +++ b/lib/merge_ruby_client/filestorage/drives/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -43,7 +48,7 @@ def initialize(request_client:) # ) # api.filestorage.drives.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -60,6 +65,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "name": name, @@ -126,9 +132,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -146,7 +157,7 @@ def initialize(request_client:) # ) # api.filestorage.drives.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -164,6 +175,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "name": name, diff --git a/lib/merge_ruby_client/filestorage/field_mapping/client.rb b/lib/merge_ruby_client/filestorage/field_mapping/client.rb index 039034e3..82b98d10 100644 --- a/lib/merge_ruby_client/filestorage/field_mapping/client.rb +++ b/lib/merge_ruby_client/filestorage/field_mapping/client.rb @@ -23,6 +23,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::FieldMappingApiInstanceResponse] # @example @@ -32,7 +36,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.filestorage.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -42,9 +46,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -57,6 +62,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -82,7 +91,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -92,9 +101,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, @@ -280,6 +290,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::FieldMappingApiInstanceResponse] # @example @@ -289,7 +303,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.filestorage.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -300,9 +314,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -316,6 +331,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -341,7 +360,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -352,9 +371,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, diff --git a/lib/merge_ruby_client/filestorage/files/client.rb b/lib/merge_ruby_client/filestorage/files/client.rb index 9d27f86e..7f027c6c 100644 --- a/lib/merge_ruby_client/filestorage/files/client.rb +++ b/lib/merge_ruby_client/filestorage/files/client.rb @@ -34,9 +34,14 @@ def initialize(request_client:) # should be comma separated without spaces. # @param folder_id [String] Specifying a folder id returns only the files in that folder. Specifying null # returns only the files in root directory. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param mime_type [String] If provided, will only return files with these mime_types. Multiple values can # be separated by commas. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -56,7 +61,7 @@ def initialize(request_client:) # ) # api.filestorage.files.list def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, expand: nil, folder_id: nil, - include_deleted_data: nil, include_remote_data: nil, mime_type: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, mime_type: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -76,6 +81,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex "folder_id": folder_id, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "mime_type": mime_type, "modified_after": modified_after, "modified_before": modified_before, @@ -99,7 +105,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex # * :name (String) # * :file_url (String) # * :file_thumbnail_url (String) - # * :size (Integer) + # * :size (Long) # * :mime_type (String) # * :description (String) # * :folder (Hash) @@ -269,9 +275,14 @@ def initialize(request_client:) # should be comma separated without spaces. # @param folder_id [String] Specifying a folder id returns only the files in that folder. Specifying null # returns only the files in root directory. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param mime_type [String] If provided, will only return files with these mime_types. Multiple values can # be separated by commas. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. @@ -291,7 +302,7 @@ def initialize(request_client:) # ) # api.filestorage.files.list def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, expand: nil, folder_id: nil, - include_deleted_data: nil, include_remote_data: nil, mime_type: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, mime_type: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -312,6 +323,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex "folder_id": folder_id, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "mime_type": mime_type, "modified_after": modified_after, "modified_before": modified_before, @@ -336,7 +348,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex # * :name (String) # * :file_url (String) # * :file_thumbnail_url (String) - # * :size (Integer) + # * :size (Long) # * :mime_type (String) # * :description (String) # * :folder (Hash) diff --git a/lib/merge_ruby_client/filestorage/folders/client.rb b/lib/merge_ruby_client/filestorage/folders/client.rb index f1371adf..1c96a1cc 100644 --- a/lib/merge_ruby_client/filestorage/folders/client.rb +++ b/lib/merge_ruby_client/filestorage/folders/client.rb @@ -31,9 +31,14 @@ def initialize(request_client:) # @param drive_id [String] If provided, will only return folders in this drive. # @param expand [Merge::Filestorage::Folders::FoldersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -53,7 +58,7 @@ def initialize(request_client:) # ) # api.filestorage.folders.list def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, parent_folder_id: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, parent_folder_id: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -72,6 +77,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "name": name, @@ -94,7 +100,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex # @param model [Hash] Request of type Merge::Filestorage::FolderRequest, as a Hash # * :name (String) # * :folder_url (String) - # * :size (Integer) + # * :size (Long) # * :description (String) # * :parent_folder (Hash) # * :drive (Hash) @@ -221,9 +227,14 @@ def initialize(request_client:) # @param drive_id [String] If provided, will only return folders in this drive. # @param expand [Merge::Filestorage::Folders::FoldersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -243,7 +254,7 @@ def initialize(request_client:) # ) # api.filestorage.folders.list def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, parent_folder_id: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, name: nil, page_size: nil, parent_folder_id: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -263,6 +274,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "name": name, @@ -286,7 +298,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, drive_id: nil, ex # @param model [Hash] Request of type Merge::Filestorage::FolderRequest, as a Hash # * :name (String) # * :folder_url (String) - # * :size (Integer) + # * :size (Long) # * :description (String) # * :parent_folder (Hash) # * :drive (Hash) diff --git a/lib/merge_ruby_client/filestorage/force_resync/client.rb b/lib/merge_ruby_client/filestorage/force_resync/client.rb index a19cd5b9..b0259633 100644 --- a/lib/merge_ruby_client/filestorage/force_resync/client.rb +++ b/lib/merge_ruby_client/filestorage/force_resync/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # @@ -70,7 +70,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # diff --git a/lib/merge_ruby_client/filestorage/groups/client.rb b/lib/merge_ruby_client/filestorage/groups/client.rb index 52b98d36..b346963a 100644 --- a/lib/merge_ruby_client/filestorage/groups/client.rb +++ b/lib/merge_ruby_client/filestorage/groups/client.rb @@ -23,9 +23,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -40,8 +47,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.filestorage.groups.list - def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -56,8 +63,10 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "created_after": created_after, "created_before": created_before, "cursor": cursor, + "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -74,6 +83,8 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d # Returns a `Group` object with the given `id`. # # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param request_options [Merge::RequestOptions] @@ -85,7 +96,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d # api_key: "YOUR_AUTH_TOKEN" # ) # api.filestorage.groups.retrieve(id: "id") - def retrieve(id:, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -97,6 +108,7 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) }.compact req.params = { **(request_options&.additional_query_parameters || {}), + "expand": expand, "include_remote_data": include_remote_data }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -123,9 +135,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -140,8 +159,8 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.filestorage.groups.list - def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -157,8 +176,10 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "created_after": created_after, "created_before": created_before, "cursor": cursor, + "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -176,6 +197,8 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d # Returns a `Group` object with the given `id`. # # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param request_options [Merge::RequestOptions] @@ -187,7 +210,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d # api_key: "YOUR_AUTH_TOKEN" # ) # api.filestorage.groups.retrieve(id: "id") - def retrieve(id:, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -200,6 +223,7 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) }.compact req.params = { **(request_options&.additional_query_parameters || {}), + "expand": expand, "include_remote_data": include_remote_data }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? diff --git a/lib/merge_ruby_client/filestorage/link_token/client.rb b/lib/merge_ruby_client/filestorage/link_token/client.rb index 01ed3939..1ad6f56d 100644 --- a/lib/merge_ruby_client/filestorage/link_token/client.rb +++ b/lib/merge_ruby_client/filestorage/link_token/client.rb @@ -3,6 +3,7 @@ require_relative "../../../requests" require_relative "../types/categories_enum" require_relative "../types/common_model_scopes_body_request" +require_relative "../types/language_enum" require_relative "../types/link_token" require "async" @@ -48,7 +49,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Filestorage::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::LinkToken] @@ -65,7 +71,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -91,6 +97,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/filestorage/v1/link-token" @@ -139,7 +146,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Filestorage::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::LinkToken] @@ -156,7 +168,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -183,6 +195,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/filestorage/v1/link-token" diff --git a/lib/merge_ruby_client/filestorage/linked_accounts/client.rb b/lib/merge_ruby_client/filestorage/linked_accounts/client.rb index 6f3c6607..cb54ea9c 100644 --- a/lib/merge_ruby_client/filestorage/linked_accounts/client.rb +++ b/lib/merge_ruby_client/filestorage/linked_accounts/client.rb @@ -47,7 +47,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::PaginatedAccountDetailsAndActionsList] # @example @@ -133,7 +133,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::PaginatedAccountDetailsAndActionsList] # @example diff --git a/lib/merge_ruby_client/filestorage/scopes/client.rb b/lib/merge_ruby_client/filestorage/scopes/client.rb index c3b01e76..5f19a3f7 100644 --- a/lib/merge_ruby_client/filestorage/scopes/client.rb +++ b/lib/merge_ruby_client/filestorage/scopes/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::CommonModelScopeApi] @@ -53,7 +53,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::CommonModelScopeApi] @@ -87,14 +87,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Filestorage::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::CommonModelScopeApi] # @example @@ -103,7 +103,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.filestorage.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.filestorage.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -136,7 +136,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::CommonModelScopeApi] @@ -172,7 +172,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::CommonModelScopeApi] @@ -208,14 +208,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Filestorage::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Filestorage::CommonModelScopeApi] # @example @@ -224,7 +224,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.filestorage.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.filestorage.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) Async do response = @request_client.conn.post do |req| diff --git a/lib/merge_ruby_client/filestorage/types/account_details.rb b/lib/merge_ruby_client/filestorage/types/account_details.rb index aef6d1f3..86983b33 100644 --- a/lib/merge_ruby_client/filestorage/types/account_details.rb +++ b/lib/merge_ruby_client/filestorage/types/account_details.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "category_enum" +require "date" require "ostruct" require "json" @@ -32,6 +33,8 @@ class AccountDetails attr_reader :is_duplicate # @return [String] attr_reader :account_type + # @return [DateTime] The time at which account completes the linking flow. + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -54,10 +57,11 @@ class AccountDetails # incomplete Production Linked Accounts, and ignored duplicate Production Linked # Account sets. # @param account_type [String] + # @param completed_at [DateTime] The time at which account completes the linking flow. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::AccountDetails] def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OMIT, end_user_origin_id: OMIT, - end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, additional_properties: nil) + end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, completed_at: OMIT, additional_properties: nil) @id = id if id != OMIT @integration = integration if integration != OMIT @integration_slug = integration_slug if integration_slug != OMIT @@ -69,6 +73,7 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM @webhook_listener_url = webhook_listener_url if webhook_listener_url != OMIT @is_duplicate = is_duplicate if is_duplicate != OMIT @account_type = account_type if account_type != OMIT + @completed_at = completed_at if completed_at != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -81,7 +86,8 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM "status": status, "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -105,6 +111,7 @@ def self.from_json(json_object:) webhook_listener_url = parsed_json["webhook_listener_url"] is_duplicate = parsed_json["is_duplicate"] account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, integration: integration, @@ -117,6 +124,7 @@ def self.from_json(json_object:) webhook_listener_url: webhook_listener_url, is_duplicate: is_duplicate, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -146,6 +154,7 @@ def self.validate_raw(obj:) obj.webhook_listener_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_listener_url is not the expected type, validation failed.") obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.account_type&.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb b/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb index 384d0fb1..8203ff1d 100644 --- a/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb +++ b/lib/merge_ruby_client/filestorage/types/account_details_and_actions.rb @@ -3,6 +3,7 @@ require_relative "category_enum" require_relative "account_details_and_actions_status_enum" require_relative "account_details_and_actions_integration" +require "date" require "ostruct" require "json" @@ -42,6 +43,8 @@ class AccountDetailsAndActions attr_reader :integration # @return [String] attr_reader :account_type + # @return [DateTime] + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -65,10 +68,11 @@ class AccountDetailsAndActions # Account sets. # @param integration [Merge::Filestorage::AccountDetailsAndActionsIntegration] # @param account_type [String] + # @param completed_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::AccountDetailsAndActions] def initialize(id:, status:, end_user_organization_name:, end_user_email_address:, webhook_listener_url:, - account_type:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) + account_type:, completed_at:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) @id = id @category = category if category != OMIT @status = status @@ -81,6 +85,7 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address @is_duplicate = is_duplicate if is_duplicate != OMIT @integration = integration if integration != OMIT @account_type = account_type + @completed_at = completed_at @additional_properties = additional_properties @_field_set = { "id": id, @@ -94,7 +99,8 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, "integration": integration, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -124,6 +130,7 @@ def self.from_json(json_object:) integration = Merge::Filestorage::AccountDetailsAndActionsIntegration.from_json(json_object: integration) end account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, category: category, @@ -137,6 +144,7 @@ def self.from_json(json_object:) is_duplicate: is_duplicate, integration: integration, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -167,6 +175,7 @@ def self.validate_raw(obj:) obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.integration.nil? || Merge::Filestorage::AccountDetailsAndActionsIntegration.validate_raw(obj: obj.integration) obj.account_type.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/filestorage/types/account_details_and_actions_status_enum.rb b/lib/merge_ruby_client/filestorage/types/account_details_and_actions_status_enum.rb index 375e023a..560e87ca 100644 --- a/lib/merge_ruby_client/filestorage/types/account_details_and_actions_status_enum.rb +++ b/lib/merge_ruby_client/filestorage/types/account_details_and_actions_status_enum.rb @@ -5,10 +5,12 @@ module Filestorage # - `COMPLETE` - COMPLETE # - `INCOMPLETE` - INCOMPLETE # - `RELINK_NEEDED` - RELINK_NEEDED + # - `IDLE` - IDLE class AccountDetailsAndActionsStatusEnum COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" + IDLE = "IDLE" end end end diff --git a/lib/merge_ruby_client/filestorage/types/account_integration.rb b/lib/merge_ruby_client/filestorage/types/account_integration.rb index 702e7da3..2c9e53b6 100644 --- a/lib/merge_ruby_client/filestorage/types/account_integration.rb +++ b/lib/merge_ruby_client/filestorage/types/account_integration.rb @@ -17,10 +17,9 @@ class AccountIntegration # @return [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. attr_reader :categories - # @return [String] Company logo in rectangular shape. Upload an image with a clear - # background. + # @return [String] Company logo in rectangular shape. attr_reader :image - # @return [String] Company logo in square shape. Upload an image with a white background. + # @return [String] Company logo in square shape. attr_reader :square_image # @return [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. @@ -52,9 +51,8 @@ class AccountIntegration # SuccessFactors) # @param categories [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. - # @param image [String] Company logo in rectangular shape. Upload an image with a clear - # background. - # @param square_image [String] Company logo in square shape. Upload an image with a white background. + # @param image [String] Company logo in rectangular shape. + # @param square_image [String] Company logo in square shape. # @param color [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. # @param slug [String] diff --git a/lib/merge_ruby_client/filestorage/types/audit_log_event.rb b/lib/merge_ruby_client/filestorage/types/audit_log_event.rb index 6770df0d..7e6e35dd 100644 --- a/lib/merge_ruby_client/filestorage/types/audit_log_event.rb +++ b/lib/merge_ruby_client/filestorage/types/audit_log_event.rb @@ -65,6 +65,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -136,6 +142,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK diff --git a/lib/merge_ruby_client/filestorage/types/drive.rb b/lib/merge_ruby_client/filestorage/types/drive.rb index 5fbb3ff9..97998cbf 100644 --- a/lib/merge_ruby_client/filestorage/types/drive.rb +++ b/lib/merge_ruby_client/filestorage/types/drive.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "date" +require_relative "remote_data" require "ostruct" require "json" @@ -28,11 +29,13 @@ class Drive # @return [String] The drive's url. attr_reader :drive_url # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -50,9 +53,11 @@ class Drive # @param remote_created_at [DateTime] When the third party's drive was created. # @param drive_url [String] The drive's url. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::Drive] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, @@ -102,7 +107,10 @@ def self.from_json(json_object:) drive_url = parsed_json["drive_url"] remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Filestorage::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, diff --git a/lib/merge_ruby_client/filestorage/types/event_type_enum.rb b/lib/merge_ruby_client/filestorage/types/event_type_enum.rb index ed532872..2a09ecf2 100644 --- a/lib/merge_ruby_client/filestorage/types/event_type_enum.rb +++ b/lib/merge_ruby_client/filestorage/types/event_type_enum.rb @@ -40,6 +40,12 @@ module Filestorage # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -79,6 +85,9 @@ class EventTypeEnum CHANGED_LINKED_ACCOUNT_FIELD_MAPPING = "CHANGED_LINKED_ACCOUNT_FIELD_MAPPING" DELETED_INTEGRATION_WIDE_FIELD_MAPPING = "DELETED_INTEGRATION_WIDE_FIELD_MAPPING" DELETED_LINKED_ACCOUNT_FIELD_MAPPING = "DELETED_LINKED_ACCOUNT_FIELD_MAPPING" + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC" MUTED_ISSUE = "MUTED_ISSUE" GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK" diff --git a/lib/merge_ruby_client/filestorage/types/field_mapping_api_instance_remote_field.rb b/lib/merge_ruby_client/filestorage/types/field_mapping_api_instance_remote_field.rb index 01d17ef6..ed3b3a42 100644 --- a/lib/merge_ruby_client/filestorage/types/field_mapping_api_instance_remote_field.rb +++ b/lib/merge_ruby_client/filestorage/types/field_mapping_api_instance_remote_field.rb @@ -26,16 +26,18 @@ class FieldMappingApiInstanceRemoteField # @param remote_endpoint_info [Merge::Filestorage::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::FieldMappingApiInstanceRemoteField] - def initialize(remote_key_name:, schema:, remote_endpoint_info:, additional_properties: nil) - @remote_key_name = remote_key_name - @schema = schema + def initialize(remote_endpoint_info:, remote_key_name: OMIT, schema: OMIT, additional_properties: nil) + @remote_key_name = remote_key_name if remote_key_name != OMIT + @schema = schema if schema != OMIT @remote_endpoint_info = remote_endpoint_info @additional_properties = additional_properties @_field_set = { "remote_key_name": remote_key_name, "schema": schema, "remote_endpoint_info": remote_endpoint_info - } + }.reject do |_k, v| + v == OMIT + end end # Deserialize a JSON object to an instance of FieldMappingApiInstanceRemoteField @@ -75,8 +77,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") - obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.schema&.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") Merge::Filestorage::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) end end diff --git a/lib/merge_ruby_client/filestorage/types/field_permission_deserializer.rb b/lib/merge_ruby_client/filestorage/types/field_permission_deserializer.rb index 1fbb72d2..6b6ee950 100644 --- a/lib/merge_ruby_client/filestorage/types/field_permission_deserializer.rb +++ b/lib/merge_ruby_client/filestorage/types/field_permission_deserializer.rb @@ -7,9 +7,9 @@ module Merge module Filestorage class FieldPermissionDeserializer # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializer OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::FieldPermissionDeserializer] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/filestorage/types/field_permission_deserializer_request.rb b/lib/merge_ruby_client/filestorage/types/field_permission_deserializer_request.rb index c531efa9..0a4738a3 100644 --- a/lib/merge_ruby_client/filestorage/types/field_permission_deserializer_request.rb +++ b/lib/merge_ruby_client/filestorage/types/field_permission_deserializer_request.rb @@ -7,9 +7,9 @@ module Merge module Filestorage class FieldPermissionDeserializerRequest # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializerRequest OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::FieldPermissionDeserializerRequest] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/filestorage/types/file.rb b/lib/merge_ruby_client/filestorage/types/file.rb index 4a342a72..3ef183ba 100644 --- a/lib/merge_ruby_client/filestorage/types/file.rb +++ b/lib/merge_ruby_client/filestorage/types/file.rb @@ -4,6 +4,7 @@ require_relative "file_folder" require_relative "file_permissions" require_relative "file_drive" +require_relative "remote_data" require "ostruct" require "json" @@ -30,7 +31,7 @@ class File attr_reader :file_url # @return [String] The URL that produces a thumbnail preview of the file. Typically an image. attr_reader :file_thumbnail_url - # @return [Integer] The file's size, in bytes. + # @return [Long] The file's size, in bytes. attr_reader :size # @return [String] The file's mime type. attr_reader :mime_type @@ -49,11 +50,13 @@ class File # @return [DateTime] When the third party's file was updated. attr_reader :remote_updated_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -70,7 +73,7 @@ class File # @param name [String] The file's name. # @param file_url [String] The URL to access the file. # @param file_thumbnail_url [String] The URL that produces a thumbnail preview of the file. Typically an image. - # @param size [Integer] The file's size, in bytes. + # @param size [Long] The file's size, in bytes. # @param mime_type [String] The file's mime type. # @param description [String] The file's description. # @param folder [Merge::Filestorage::FileFolder] The folder that the file belongs to. @@ -81,9 +84,11 @@ class File # @param remote_created_at [DateTime] When the third party's file was created. # @param remote_updated_at [DateTime] When the third party's file was updated. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::File] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, file_url: OMIT, @@ -174,7 +179,10 @@ def self.from_json(json_object:) end remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Filestorage::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -219,7 +227,7 @@ def self.validate_raw(obj:) obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.file_url&.is_a?(String) != false || raise("Passed value for field obj.file_url is not the expected type, validation failed.") obj.file_thumbnail_url&.is_a?(String) != false || raise("Passed value for field obj.file_thumbnail_url is not the expected type, validation failed.") - obj.size&.is_a?(Integer) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") + obj.size&.is_a?(Long) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") obj.mime_type&.is_a?(String) != false || raise("Passed value for field obj.mime_type is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.folder.nil? || Merge::Filestorage::FileFolder.validate_raw(obj: obj.folder) diff --git a/lib/merge_ruby_client/filestorage/types/file_request.rb b/lib/merge_ruby_client/filestorage/types/file_request.rb index 99cbdc3c..da3cd7da 100644 --- a/lib/merge_ruby_client/filestorage/types/file_request.rb +++ b/lib/merge_ruby_client/filestorage/types/file_request.rb @@ -21,7 +21,7 @@ class FileRequest attr_reader :file_url # @return [String] The URL that produces a thumbnail preview of the file. Typically an image. attr_reader :file_thumbnail_url - # @return [Integer] The file's size, in bytes. + # @return [Long] The file's size, in bytes. attr_reader :size # @return [String] The file's mime type. attr_reader :mime_type @@ -50,7 +50,7 @@ class FileRequest # @param name [String] The file's name. # @param file_url [String] The URL to access the file. # @param file_thumbnail_url [String] The URL that produces a thumbnail preview of the file. Typically an image. - # @param size [Integer] The file's size, in bytes. + # @param size [Long] The file's size, in bytes. # @param mime_type [String] The file's mime type. # @param description [String] The file's description. # @param folder [Merge::Filestorage::FileRequestFolder] The folder that the file belongs to. @@ -159,7 +159,7 @@ def self.validate_raw(obj:) obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.file_url&.is_a?(String) != false || raise("Passed value for field obj.file_url is not the expected type, validation failed.") obj.file_thumbnail_url&.is_a?(String) != false || raise("Passed value for field obj.file_thumbnail_url is not the expected type, validation failed.") - obj.size&.is_a?(Integer) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") + obj.size&.is_a?(Long) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") obj.mime_type&.is_a?(String) != false || raise("Passed value for field obj.mime_type is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.folder.nil? || Merge::Filestorage::FileRequestFolder.validate_raw(obj: obj.folder) diff --git a/lib/merge_ruby_client/filestorage/types/folder.rb b/lib/merge_ruby_client/filestorage/types/folder.rb index a6d4371b..dd6376a0 100644 --- a/lib/merge_ruby_client/filestorage/types/folder.rb +++ b/lib/merge_ruby_client/filestorage/types/folder.rb @@ -4,6 +4,7 @@ require_relative "folder_parent_folder" require_relative "folder_drive" require_relative "folder_permissions" +require_relative "remote_data" require "ostruct" require "json" @@ -29,7 +30,7 @@ class Folder attr_reader :name # @return [String] The URL to access the folder. attr_reader :folder_url - # @return [Integer] The folder's size, in bytes. + # @return [Long] The folder's size, in bytes. attr_reader :size # @return [String] The folder's description. attr_reader :description @@ -46,11 +47,13 @@ class Folder # @return [DateTime] When the third party's folder was updated. attr_reader :remote_updated_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -66,7 +69,7 @@ class Folder # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The folder's name. # @param folder_url [String] The URL to access the folder. - # @param size [Integer] The folder's size, in bytes. + # @param size [Long] The folder's size, in bytes. # @param description [String] The folder's description. # @param parent_folder [Merge::Filestorage::FolderParentFolder] The folder that the folder belongs to. # @param drive [Merge::Filestorage::FolderDrive] The drive that the folder belongs to. @@ -76,9 +79,11 @@ class Folder # @param remote_created_at [DateTime] When the third party's folder was created. # @param remote_updated_at [DateTime] When the third party's folder was updated. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::Folder] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, folder_url: OMIT, @@ -163,7 +168,10 @@ def self.from_json(json_object:) end remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Filestorage::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -205,7 +213,7 @@ def self.validate_raw(obj:) obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.folder_url&.is_a?(String) != false || raise("Passed value for field obj.folder_url is not the expected type, validation failed.") - obj.size&.is_a?(Integer) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") + obj.size&.is_a?(Long) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.parent_folder.nil? || Merge::Filestorage::FolderParentFolder.validate_raw(obj: obj.parent_folder) obj.drive.nil? || Merge::Filestorage::FolderDrive.validate_raw(obj: obj.drive) diff --git a/lib/merge_ruby_client/filestorage/types/folder_request.rb b/lib/merge_ruby_client/filestorage/types/folder_request.rb index fa76c932..e1efc13b 100644 --- a/lib/merge_ruby_client/filestorage/types/folder_request.rb +++ b/lib/merge_ruby_client/filestorage/types/folder_request.rb @@ -20,7 +20,7 @@ class FolderRequest attr_reader :name # @return [String] The URL to access the folder. attr_reader :folder_url - # @return [Integer] The folder's size, in bytes. + # @return [Long] The folder's size, in bytes. attr_reader :size # @return [String] The folder's description. attr_reader :description @@ -46,7 +46,7 @@ class FolderRequest # @param name [String] The folder's name. # @param folder_url [String] The URL to access the folder. - # @param size [Integer] The folder's size, in bytes. + # @param size [Long] The folder's size, in bytes. # @param description [String] The folder's description. # @param parent_folder [Merge::Filestorage::FolderRequestParentFolder] The folder that the folder belongs to. # @param drive [Merge::Filestorage::FolderRequestDrive] The drive that the folder belongs to. @@ -145,7 +145,7 @@ def to_json(*_args) def self.validate_raw(obj:) obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.folder_url&.is_a?(String) != false || raise("Passed value for field obj.folder_url is not the expected type, validation failed.") - obj.size&.is_a?(Integer) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") + obj.size&.is_a?(Long) != false || raise("Passed value for field obj.size is not the expected type, validation failed.") obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.parent_folder.nil? || Merge::Filestorage::FolderRequestParentFolder.validate_raw(obj: obj.parent_folder) obj.drive.nil? || Merge::Filestorage::FolderRequestDrive.validate_raw(obj: obj.drive) diff --git a/lib/merge_ruby_client/filestorage/types/group.rb b/lib/merge_ruby_client/filestorage/types/group.rb index 3901edfd..de436d13 100644 --- a/lib/merge_ruby_client/filestorage/types/group.rb +++ b/lib/merge_ruby_client/filestorage/types/group.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true require "date" +require_relative "group_child_groups_item" +require_relative "remote_data" require "ostruct" require "json" @@ -26,12 +28,16 @@ class Group # @return [Array] The users that belong in the group. If null, this typically means it's either a # domain or the third-party platform does not surface this information. attr_reader :users + # @return [Array] Groups that inherit the permissions of the parent group. + attr_reader :child_groups # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -48,20 +54,24 @@ class Group # @param name [String] The group's name. # @param users [Array] The users that belong in the group. If null, this typically means it's either a # domain or the third-party platform does not surface this information. + # @param child_groups [Array] Groups that inherit the permissions of the parent group. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::Group] def initialize(users:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, - remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + child_groups: OMIT, remote_was_deleted: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @name = name if name != OMIT @users = users + @child_groups = child_groups if child_groups != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @field_mappings = field_mappings if field_mappings != OMIT @remote_data = remote_data if remote_data != OMIT @@ -73,6 +83,7 @@ def initialize(users:, id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: "modified_at": modified_at, "name": name, "users": users, + "child_groups": child_groups, "remote_was_deleted": remote_was_deleted, "field_mappings": field_mappings, "remote_data": remote_data @@ -94,9 +105,16 @@ def self.from_json(json_object:) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) name = parsed_json["name"] users = parsed_json["users"] + child_groups = parsed_json["child_groups"]&.map do |item| + item = item.to_json + Merge::Filestorage::GroupChildGroupsItem.from_json(json_object: item) + end remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Filestorage::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -104,6 +122,7 @@ def self.from_json(json_object:) modified_at: modified_at, name: name, users: users, + child_groups: child_groups, remote_was_deleted: remote_was_deleted, field_mappings: field_mappings, remote_data: remote_data, @@ -131,6 +150,7 @@ def self.validate_raw(obj:) obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.users.is_a?(Array) != false || raise("Passed value for field obj.users is not the expected type, validation failed.") + obj.child_groups&.is_a?(Array) != false || raise("Passed value for field obj.child_groups is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") obj.remote_data&.is_a?(Array) != false || raise("Passed value for field obj.remote_data is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/filestorage/types/group_child_groups_item.rb b/lib/merge_ruby_client/filestorage/types/group_child_groups_item.rb new file mode 100644 index 00000000..e2a9dd58 --- /dev/null +++ b/lib/merge_ruby_client/filestorage/types/group_child_groups_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "group" + +module Merge + module Filestorage + class GroupChildGroupsItem + # Deserialize a JSON object to an instance of GroupChildGroupsItem + # + # @param json_object [String] + # @return [Merge::Filestorage::GroupChildGroupsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Filestorage::Group.validate_raw(obj: struct) + return Merge::Filestorage::Group.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Filestorage::Group.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/filestorage/types/language_enum.rb b/lib/merge_ruby_client/filestorage/types/language_enum.rb new file mode 100644 index 00000000..9825f083 --- /dev/null +++ b/lib/merge_ruby_client/filestorage/types/language_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Filestorage + # - `en` - en + # - `de` - de + class LanguageEnum + EN = "en" + DE = "de" + end + end +end diff --git a/lib/merge_ruby_client/filestorage/types/permission.rb b/lib/merge_ruby_client/filestorage/types/permission.rb index 70264023..8152564b 100644 --- a/lib/merge_ruby_client/filestorage/types/permission.rb +++ b/lib/merge_ruby_client/filestorage/types/permission.rb @@ -26,9 +26,11 @@ class Permission attr_reader :created_at # @return [DateTime] The datetime that this object was modified by Merge. attr_reader :modified_at - # @return [Merge::Filestorage::PermissionUser] The user that is granted this permission. + # @return [Merge::Filestorage::PermissionUser] The user that is granted this permission. This will only be populated if the + # type is `USER`. attr_reader :user - # @return [Merge::Filestorage::PermissionGroup] The group that is granted this permission. + # @return [Merge::Filestorage::PermissionGroup] The group that is granted this permission. This will only be populated if the + # type is `GROUP`. attr_reader :group # @return [Merge::Filestorage::TypeEnum] Denotes what type of people have access to the file. # - `USER` - USER @@ -53,8 +55,10 @@ class Permission # @param remote_id [String] The third-party API ID of the matching object. # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. - # @param user [Merge::Filestorage::PermissionUser] The user that is granted this permission. - # @param group [Merge::Filestorage::PermissionGroup] The group that is granted this permission. + # @param user [Merge::Filestorage::PermissionUser] The user that is granted this permission. This will only be populated if the + # type is `USER`. + # @param group [Merge::Filestorage::PermissionGroup] The group that is granted this permission. This will only be populated if the + # type is `GROUP`. # @param type [Merge::Filestorage::TypeEnum] Denotes what type of people have access to the file. # - `USER` - USER # - `GROUP` - GROUP diff --git a/lib/merge_ruby_client/filestorage/types/permission_group.rb b/lib/merge_ruby_client/filestorage/types/permission_group.rb index 0a9f398b..fd663410 100644 --- a/lib/merge_ruby_client/filestorage/types/permission_group.rb +++ b/lib/merge_ruby_client/filestorage/types/permission_group.rb @@ -5,7 +5,8 @@ module Merge module Filestorage - # The group that is granted this permission. + # The group that is granted this permission. This will only be populated if the + # type is `GROUP`. class PermissionGroup # Deserialize a JSON object to an instance of PermissionGroup # diff --git a/lib/merge_ruby_client/filestorage/types/permission_request.rb b/lib/merge_ruby_client/filestorage/types/permission_request.rb index 002c1691..cff95fdc 100644 --- a/lib/merge_ruby_client/filestorage/types/permission_request.rb +++ b/lib/merge_ruby_client/filestorage/types/permission_request.rb @@ -19,9 +19,11 @@ module Filestorage class PermissionRequest # @return [String] The third-party API ID of the matching object. attr_reader :remote_id - # @return [Merge::Filestorage::PermissionRequestUser] The user that is granted this permission. + # @return [Merge::Filestorage::PermissionRequestUser] The user that is granted this permission. This will only be populated if the + # type is `USER`. attr_reader :user - # @return [Merge::Filestorage::PermissionRequestGroup] The group that is granted this permission. + # @return [Merge::Filestorage::PermissionRequestGroup] The group that is granted this permission. This will only be populated if the + # type is `GROUP`. attr_reader :group # @return [Merge::Filestorage::TypeEnum] Denotes what type of people have access to the file. # - `USER` - USER @@ -47,8 +49,10 @@ class PermissionRequest OMIT = Object.new # @param remote_id [String] The third-party API ID of the matching object. - # @param user [Merge::Filestorage::PermissionRequestUser] The user that is granted this permission. - # @param group [Merge::Filestorage::PermissionRequestGroup] The group that is granted this permission. + # @param user [Merge::Filestorage::PermissionRequestUser] The user that is granted this permission. This will only be populated if the + # type is `USER`. + # @param group [Merge::Filestorage::PermissionRequestGroup] The group that is granted this permission. This will only be populated if the + # type is `GROUP`. # @param type [Merge::Filestorage::TypeEnum] Denotes what type of people have access to the file. # - `USER` - USER # - `GROUP` - GROUP diff --git a/lib/merge_ruby_client/filestorage/types/permission_request_group.rb b/lib/merge_ruby_client/filestorage/types/permission_request_group.rb index 6a01ce94..e40a297c 100644 --- a/lib/merge_ruby_client/filestorage/types/permission_request_group.rb +++ b/lib/merge_ruby_client/filestorage/types/permission_request_group.rb @@ -5,7 +5,8 @@ module Merge module Filestorage - # The group that is granted this permission. + # The group that is granted this permission. This will only be populated if the + # type is `GROUP`. class PermissionRequestGroup # Deserialize a JSON object to an instance of PermissionRequestGroup # diff --git a/lib/merge_ruby_client/filestorage/types/permission_request_user.rb b/lib/merge_ruby_client/filestorage/types/permission_request_user.rb index 369f0274..de3fbb3c 100644 --- a/lib/merge_ruby_client/filestorage/types/permission_request_user.rb +++ b/lib/merge_ruby_client/filestorage/types/permission_request_user.rb @@ -5,7 +5,8 @@ module Merge module Filestorage - # The user that is granted this permission. + # The user that is granted this permission. This will only be populated if the + # type is `USER`. class PermissionRequestUser # Deserialize a JSON object to an instance of PermissionRequestUser # diff --git a/lib/merge_ruby_client/filestorage/types/permission_user.rb b/lib/merge_ruby_client/filestorage/types/permission_user.rb index 9ae19d20..1fff8c02 100644 --- a/lib/merge_ruby_client/filestorage/types/permission_user.rb +++ b/lib/merge_ruby_client/filestorage/types/permission_user.rb @@ -5,7 +5,8 @@ module Merge module Filestorage - # The user that is granted this permission. + # The user that is granted this permission. This will only be populated if the + # type is `USER`. class PermissionUser # Deserialize a JSON object to an instance of PermissionUser # diff --git a/lib/merge_ruby_client/filestorage/types/remote_data.rb b/lib/merge_ruby_client/filestorage/types/remote_data.rb new file mode 100644 index 00000000..15a1c358 --- /dev/null +++ b/lib/merge_ruby_client/filestorage/types/remote_data.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require "ostruct" +require "json" + +module Merge + module Filestorage + # # The RemoteData Object + # ### Description + # The `RemoteData` object is used to represent the full data pulled from the + # third-party API for an object. + # ### Usage Example + # TODO + class RemoteData + # @return [String] The third-party API path that is being called. + attr_reader :path + # @return [Object] + attr_reader :data + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param path [String] The third-party API path that is being called. + # @param data [Object] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Filestorage::RemoteData] + def initialize(path:, data: OMIT, additional_properties: nil) + @path = path + @data = data if data != OMIT + @additional_properties = additional_properties + @_field_set = { "path": path, "data": data }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of RemoteData + # + # @param json_object [String] + # @return [Merge::Filestorage::RemoteData] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + path = parsed_json["path"] + data = parsed_json["data"] + new( + path: path, + data: data, + additional_properties: struct + ) + end + + # Serialize an instance of RemoteData to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.path.is_a?(String) != false || raise("Passed value for field obj.path is not the expected type, validation failed.") + obj.data&.is_a?(Object) != false || raise("Passed value for field obj.data is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/filestorage/types/user.rb b/lib/merge_ruby_client/filestorage/types/user.rb index 817ced9d..dae93db6 100644 --- a/lib/merge_ruby_client/filestorage/types/user.rb +++ b/lib/merge_ruby_client/filestorage/types/user.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "date" +require_relative "remote_data" require "ostruct" require "json" @@ -28,11 +29,13 @@ class User # @return [Boolean] Whether the user is the one who linked this account. attr_reader :is_me # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -51,9 +54,11 @@ class User # linked accounts. # @param is_me [Boolean] Whether the user is the one who linked this account. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Filestorage::User] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, email_address: OMIT, @@ -101,7 +106,10 @@ def self.from_json(json_object:) is_me = parsed_json["is_me"] remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Filestorage::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, diff --git a/lib/merge_ruby_client/filestorage/users/client.rb b/lib/merge_ruby_client/filestorage/users/client.rb index 49243492..ab2c1ace 100644 --- a/lib/merge_ruby_client/filestorage/users/client.rb +++ b/lib/merge_ruby_client/filestorage/users/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_me [String] If provided, will only return the user object for requestor. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -42,7 +47,7 @@ def initialize(request_client:) # ) # api.filestorage.users.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, is_me: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, is_me: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -59,6 +64,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "is_me": is_me, "modified_after": modified_after, "modified_before": modified_before, @@ -125,9 +131,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_me [String] If provided, will only return the user object for requestor. # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be @@ -144,7 +155,7 @@ def initialize(request_client:) # ) # api.filestorage.users.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, is_me: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, is_me: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -162,6 +173,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "is_me": is_me, "modified_after": modified_after, "modified_before": modified_before, diff --git a/lib/merge_ruby_client/hris/async_passthrough/client.rb b/lib/merge_ruby_client/hris/async_passthrough/client.rb index 6d48b8c4..96272ac2 100644 --- a/lib/merge_ruby_client/hris/async_passthrough/client.rb +++ b/lib/merge_ruby_client/hris/async_passthrough/client.rb @@ -3,7 +3,7 @@ require_relative "../../../requests" require_relative "../types/data_passthrough_request" require_relative "../types/async_passthrough_reciept" -require_relative "../types/remote_response" +require_relative "types/async_passthrough_retrieve_response" require "async" module Merge @@ -61,7 +61,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Hris::RemoteResponse] + # @return [Merge::Hris::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -87,7 +87,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/hris/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Hris::RemoteResponse.from_json(json_object: response.body) + Merge::Hris::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end @@ -146,7 +146,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Hris::RemoteResponse] + # @return [Merge::Hris::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -173,7 +173,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/hris/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Hris::RemoteResponse.from_json(json_object: response.body) + Merge::Hris::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end end diff --git a/lib/merge_ruby_client/hris/async_passthrough/types/async_passthrough_retrieve_response.rb b/lib/merge_ruby_client/hris/async_passthrough/types/async_passthrough_retrieve_response.rb new file mode 100644 index 00000000..32c592f5 --- /dev/null +++ b/lib/merge_ruby_client/hris/async_passthrough/types/async_passthrough_retrieve_response.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "../../types/remote_response" + +module Merge + module Hris + class AsyncPassthrough + class AsyncPassthroughRetrieveResponse + # Deserialize a JSON object to an instance of AsyncPassthroughRetrieveResponse + # + # @param json_object [String] + # @return [Merge::Hris::AsyncPassthrough::AsyncPassthroughRetrieveResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + Merge::Hris::RemoteResponse.validate_raw(obj: struct) + return Merge::Hris::RemoteResponse.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return Merge::Hris::RemoteResponse.validate_raw(obj: obj) + rescue StandardError + # noop + end + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end + end +end diff --git a/lib/merge_ruby_client/hris/audit_trail/client.rb b/lib/merge_ruby_client/hris/audit_trail/client.rb index 226417c9..0b34c1e1 100644 --- a/lib/merge_ruby_client/hris/audit_trail/client.rb +++ b/lib/merge_ruby_client/hris/audit_trail/client.rb @@ -38,7 +38,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` @@ -117,7 +120,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` diff --git a/lib/merge_ruby_client/hris/bank_info/client.rb b/lib/merge_ruby_client/hris/bank_info/client.rb index 2c7a1d2a..4329ace5 100644 --- a/lib/merge_ruby_client/hris/bank_info/client.rb +++ b/lib/merge_ruby_client/hris/bank_info/client.rb @@ -33,9 +33,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will only return bank accounts for this employee. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -57,7 +62,7 @@ def initialize(request_client:) # ) # api.hris.bank_info.list def list(account_type: nil, bank_name: nil, created_after: nil, created_before: nil, cursor: nil, - employee_id: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + employee_id: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -78,6 +83,7 @@ def list(account_type: nil, bank_name: nil, created_after: nil, created_before: "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "order_by": order_by, @@ -164,9 +170,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will only return bank accounts for this employee. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -188,7 +199,7 @@ def initialize(request_client:) # ) # api.hris.bank_info.list def list(account_type: nil, bank_name: nil, created_after: nil, created_before: nil, cursor: nil, - employee_id: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + employee_id: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -210,6 +221,7 @@ def list(account_type: nil, bank_name: nil, created_after: nil, created_before: "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "order_by": order_by, diff --git a/lib/merge_ruby_client/hris/benefits/client.rb b/lib/merge_ruby_client/hris/benefits/client.rb index e290fba7..379190a6 100644 --- a/lib/merge_ruby_client/hris/benefits/client.rb +++ b/lib/merge_ruby_client/hris/benefits/client.rb @@ -26,9 +26,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will return the benefits associated with the employee. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.hris.benefits.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -63,6 +68,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -134,9 +140,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will return the benefits associated with the employee. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.hris.benefits.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -172,6 +183,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/companies/client.rb b/lib/merge_ruby_client/hris/companies/client.rb index b5f13e8c..8c46989d 100644 --- a/lib/merge_ruby_client/hris/companies/client.rb +++ b/lib/merge_ruby_client/hris/companies/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.hris.companies.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.hris.companies.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/dependents/client.rb b/lib/merge_ruby_client/hris/dependents/client.rb index dd1f1f9a..07322171 100644 --- a/lib/merge_ruby_client/hris/dependents/client.rb +++ b/lib/merge_ruby_client/hris/dependents/client.rb @@ -23,11 +23,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_sensitive_fields [Boolean] Whether to include sensitive fields (such as social security numbers) in the # response. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -43,7 +48,7 @@ def initialize(request_client:) # ) # api.hris.dependents.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_sensitive_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_sensitive_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -61,6 +66,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_sensitive_fields": include_sensitive_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -129,11 +135,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_sensitive_fields [Boolean] Whether to include sensitive fields (such as social security numbers) in the # response. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -149,7 +160,7 @@ def initialize(request_client:) # ) # api.hris.dependents.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, include_sensitive_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_sensitive_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -168,6 +179,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_sensitive_fields": include_sensitive_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb b/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb index 3db605b5..94e0be90 100644 --- a/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb +++ b/lib/merge_ruby_client/hris/employee_payroll_runs/client.rb @@ -30,9 +30,14 @@ def initialize(request_client:) # @param ended_before [DateTime] If provided, will only return employee payroll runs ended before this datetime. # @param expand [Merge::Hris::EmployeePayrollRuns::EmployeePayrollRunsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.hris.employee_payroll_runs.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, ended_after: nil, - ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, payroll_run_id: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) + ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, payroll_run_id: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -73,6 +78,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -149,9 +155,14 @@ def initialize(request_client:) # @param ended_before [DateTime] If provided, will only return employee payroll runs ended before this datetime. # @param expand [Merge::Hris::EmployeePayrollRuns::EmployeePayrollRunsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -171,7 +182,7 @@ def initialize(request_client:) # ) # api.hris.employee_payroll_runs.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, ended_after: nil, - ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, payroll_run_id: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) + ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, payroll_run_id: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -193,6 +204,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/employees/client.rb b/lib/merge_ruby_client/hris/employees/client.rb index 7031c730..599e9dc1 100644 --- a/lib/merge_ruby_client/hris/employees/client.rb +++ b/lib/merge_ruby_client/hris/employees/client.rb @@ -48,11 +48,16 @@ def initialize(request_client:) # @param groups [String] If provided, will only return employees matching the group ids; multiple groups # can be separated by commas. # @param home_location_id [String] If provided, will only return employees for this home location. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_sensitive_fields [Boolean] Whether to include sensitive fields (such as social security numbers) in the # response. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_title [String] If provided, will only return employees that have an employment of the specified # job_title. # @param last_name [String] If provided, will only return employees with this last name. @@ -87,7 +92,7 @@ def initialize(request_client:) # ) # api.hris.employees.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, display_full_name: nil, - employment_status: nil, employment_type: nil, expand: nil, first_name: nil, groups: nil, home_location_id: nil, include_deleted_data: nil, include_remote_data: nil, include_sensitive_fields: nil, job_title: nil, last_name: nil, manager_id: nil, modified_after: nil, modified_before: nil, page_size: nil, pay_group_id: nil, personal_email: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, started_after: nil, started_before: nil, team_id: nil, terminated_after: nil, terminated_before: nil, work_email: nil, work_location_id: nil, request_options: nil) + employment_status: nil, employment_type: nil, expand: nil, first_name: nil, groups: nil, home_location_id: nil, include_deleted_data: nil, include_remote_data: nil, include_sensitive_fields: nil, include_shell_data: nil, job_title: nil, last_name: nil, manager_id: nil, modified_after: nil, modified_before: nil, page_size: nil, pay_group_id: nil, personal_email: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, started_after: nil, started_before: nil, team_id: nil, terminated_after: nil, terminated_before: nil, work_email: nil, work_location_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -113,6 +118,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_sensitive_fields": include_sensitive_fields, + "include_shell_data": include_shell_data, "job_title": job_title, "last_name": last_name, "manager_id": manager_id, @@ -350,11 +356,16 @@ def initialize(request_client:) # @param groups [String] If provided, will only return employees matching the group ids; multiple groups # can be separated by commas. # @param home_location_id [String] If provided, will only return employees for this home location. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_sensitive_fields [Boolean] Whether to include sensitive fields (such as social security numbers) in the # response. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param job_title [String] If provided, will only return employees that have an employment of the specified # job_title. # @param last_name [String] If provided, will only return employees with this last name. @@ -389,7 +400,7 @@ def initialize(request_client:) # ) # api.hris.employees.list def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, display_full_name: nil, - employment_status: nil, employment_type: nil, expand: nil, first_name: nil, groups: nil, home_location_id: nil, include_deleted_data: nil, include_remote_data: nil, include_sensitive_fields: nil, job_title: nil, last_name: nil, manager_id: nil, modified_after: nil, modified_before: nil, page_size: nil, pay_group_id: nil, personal_email: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, started_after: nil, started_before: nil, team_id: nil, terminated_after: nil, terminated_before: nil, work_email: nil, work_location_id: nil, request_options: nil) + employment_status: nil, employment_type: nil, expand: nil, first_name: nil, groups: nil, home_location_id: nil, include_deleted_data: nil, include_remote_data: nil, include_sensitive_fields: nil, include_shell_data: nil, job_title: nil, last_name: nil, manager_id: nil, modified_after: nil, modified_before: nil, page_size: nil, pay_group_id: nil, personal_email: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, started_after: nil, started_before: nil, team_id: nil, terminated_after: nil, terminated_before: nil, work_email: nil, work_location_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -416,6 +427,7 @@ def list(company_id: nil, created_after: nil, created_before: nil, cursor: nil, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_sensitive_fields": include_sensitive_fields, + "include_shell_data": include_shell_data, "job_title": job_title, "last_name": last_name, "manager_id": manager_id, diff --git a/lib/merge_ruby_client/hris/employer_benefits/client.rb b/lib/merge_ruby_client/hris/employer_benefits/client.rb index fa953dec..3942bee1 100644 --- a/lib/merge_ruby_client/hris/employer_benefits/client.rb +++ b/lib/merge_ruby_client/hris/employer_benefits/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.hris.employer_benefits.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.hris.employer_benefits.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/employments/client.rb b/lib/merge_ruby_client/hris/employments/client.rb index 7f2c538e..7e0a8bb7 100644 --- a/lib/merge_ruby_client/hris/employments/client.rb +++ b/lib/merge_ruby_client/hris/employments/client.rb @@ -33,9 +33,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will only return employments for this employee. # @param expand [Merge::Hris::Employments::EmploymentsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -57,7 +62,7 @@ def initialize(request_client:) # ) # api.hris.employments.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -76,6 +81,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "order_by": order_by, @@ -157,9 +163,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will only return employments for this employee. # @param expand [Merge::Hris::Employments::EmploymentsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -181,7 +192,7 @@ def initialize(request_client:) # ) # api.hris.employments.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -201,6 +212,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "order_by": order_by, diff --git a/lib/merge_ruby_client/hris/field_mapping/client.rb b/lib/merge_ruby_client/hris/field_mapping/client.rb index abf21703..e3581ff3 100644 --- a/lib/merge_ruby_client/hris/field_mapping/client.rb +++ b/lib/merge_ruby_client/hris/field_mapping/client.rb @@ -23,6 +23,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::FieldMappingApiInstanceResponse] # @example @@ -32,7 +36,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.hris.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -42,9 +46,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -57,6 +62,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -82,7 +91,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -92,9 +101,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, @@ -280,6 +290,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::FieldMappingApiInstanceResponse] # @example @@ -289,7 +303,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.hris.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -300,9 +314,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -316,6 +331,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -341,7 +360,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -352,9 +371,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, diff --git a/lib/merge_ruby_client/hris/force_resync/client.rb b/lib/merge_ruby_client/hris/force_resync/client.rb index 28a9bc70..d8c4a744 100644 --- a/lib/merge_ruby_client/hris/force_resync/client.rb +++ b/lib/merge_ruby_client/hris/force_resync/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # @@ -70,7 +70,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # diff --git a/lib/merge_ruby_client/hris/groups/client.rb b/lib/merge_ruby_client/hris/groups/client.rb index fff6e3ce..b690fe28 100644 --- a/lib/merge_ruby_client/hris/groups/client.rb +++ b/lib/merge_ruby_client/hris/groups/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_commonly_used_as_team [String] If provided, specifies whether to return only Group objects which refer to a # team in the third party platform. Note that this is an opinionated view based on # how a team may be represented in the third party platform. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.hris.groups.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, is_commonly_used_as_team: nil, modified_after: nil, modified_before: nil, names: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, types: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, is_commonly_used_as_team: nil, modified_after: nil, modified_before: nil, names: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, types: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -69,6 +74,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "is_commonly_used_as_team": is_commonly_used_as_team, "modified_after": modified_after, "modified_before": modified_before, @@ -145,9 +151,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_commonly_used_as_team [String] If provided, specifies whether to return only Group objects which refer to a # team in the third party platform. Note that this is an opinionated view based on # how a team may be represented in the third party platform. @@ -174,7 +185,7 @@ def initialize(request_client:) # ) # api.hris.groups.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, is_commonly_used_as_team: nil, modified_after: nil, modified_before: nil, names: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, types: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, is_commonly_used_as_team: nil, modified_after: nil, modified_before: nil, names: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, types: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -192,6 +203,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "is_commonly_used_as_team": is_commonly_used_as_team, "modified_after": modified_after, "modified_before": modified_before, diff --git a/lib/merge_ruby_client/hris/link_token/client.rb b/lib/merge_ruby_client/hris/link_token/client.rb index 687ed4c2..97d4d3f6 100644 --- a/lib/merge_ruby_client/hris/link_token/client.rb +++ b/lib/merge_ruby_client/hris/link_token/client.rb @@ -3,6 +3,7 @@ require_relative "../../../requests" require_relative "../types/categories_enum" require_relative "../types/common_model_scopes_body_request" +require_relative "../types/language_enum" require_relative "../types/link_token" require "async" @@ -48,7 +49,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Hris::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::LinkToken] @@ -65,7 +71,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -91,6 +97,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/hris/v1/link-token" @@ -139,7 +146,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Hris::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::LinkToken] @@ -156,7 +168,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -183,6 +195,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/hris/v1/link-token" diff --git a/lib/merge_ruby_client/hris/linked_accounts/client.rb b/lib/merge_ruby_client/hris/linked_accounts/client.rb index e29868d4..ee2da5e5 100644 --- a/lib/merge_ruby_client/hris/linked_accounts/client.rb +++ b/lib/merge_ruby_client/hris/linked_accounts/client.rb @@ -47,7 +47,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::PaginatedAccountDetailsAndActionsList] # @example @@ -133,7 +133,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::PaginatedAccountDetailsAndActionsList] # @example diff --git a/lib/merge_ruby_client/hris/locations/client.rb b/lib/merge_ruby_client/hris/locations/client.rb index d1a9b1f9..55b6d377 100644 --- a/lib/merge_ruby_client/hris/locations/client.rb +++ b/lib/merge_ruby_client/hris/locations/client.rb @@ -3,7 +3,11 @@ require_relative "../../../requests" require "date" require_relative "types/locations_list_request_location_type" +require_relative "types/locations_list_request_remote_fields" +require_relative "types/locations_list_request_show_enum_origins" require_relative "../types/paginated_location_list" +require_relative "types/locations_retrieve_request_remote_fields" +require_relative "types/locations_retrieve_request_show_enum_origins" require_relative "../types/location" require "async" @@ -24,9 +28,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param location_type [Merge::Hris::Locations::LocationsListRequestLocationType] If provided, will only return locations with this location_type # - `HOME` - HOME # - `WORK` - WORK @@ -34,9 +43,9 @@ def initialize(request_client:) # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. # @param page_size [Integer] Number of results to return per page. - # @param remote_fields [String] Deprecated. Use show_enum_origins. + # @param remote_fields [Merge::Hris::Locations::LocationsListRequestRemoteFields] Deprecated. Use show_enum_origins. # @param remote_id [String] The API provider's ID for the given object. - # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original + # @param show_enum_origins [Merge::Hris::Locations::LocationsListRequestShowEnumOrigins] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) # @param request_options [Merge::RequestOptions] @@ -49,7 +58,7 @@ def initialize(request_client:) # ) # api.hris.locations.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, location_type: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, location_type: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -66,6 +75,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "location_type": location_type, "modified_after": modified_after, "modified_before": modified_before, @@ -87,8 +97,8 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d # @param id [String] # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. - # @param remote_fields [String] Deprecated. Use show_enum_origins. - # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original + # @param remote_fields [Merge::Hris::Locations::LocationsRetrieveRequestRemoteFields] Deprecated. Use show_enum_origins. + # @param show_enum_origins [Merge::Hris::Locations::LocationsRetrieveRequestShowEnumOrigins] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) # @param request_options [Merge::RequestOptions] @@ -140,9 +150,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param location_type [Merge::Hris::Locations::LocationsListRequestLocationType] If provided, will only return locations with this location_type # - `HOME` - HOME # - `WORK` - WORK @@ -150,9 +165,9 @@ def initialize(request_client:) # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. # @param page_size [Integer] Number of results to return per page. - # @param remote_fields [String] Deprecated. Use show_enum_origins. + # @param remote_fields [Merge::Hris::Locations::LocationsListRequestRemoteFields] Deprecated. Use show_enum_origins. # @param remote_id [String] The API provider's ID for the given object. - # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original + # @param show_enum_origins [Merge::Hris::Locations::LocationsListRequestShowEnumOrigins] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) # @param request_options [Merge::RequestOptions] @@ -165,7 +180,7 @@ def initialize(request_client:) # ) # api.hris.locations.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, location_type: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, location_type: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -183,6 +198,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "location_type": location_type, "modified_after": modified_after, "modified_before": modified_before, @@ -205,8 +221,8 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d # @param id [String] # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. - # @param remote_fields [String] Deprecated. Use show_enum_origins. - # @param show_enum_origins [String] A comma separated list of enum field names for which you'd like the original + # @param remote_fields [Merge::Hris::Locations::LocationsRetrieveRequestRemoteFields] Deprecated. Use show_enum_origins. + # @param show_enum_origins [Merge::Hris::Locations::LocationsRetrieveRequestShowEnumOrigins] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) # @param request_options [Merge::RequestOptions] diff --git a/lib/merge_ruby_client/hris/locations/types/locations_list_request_remote_fields.rb b/lib/merge_ruby_client/hris/locations/types/locations_list_request_remote_fields.rb new file mode 100644 index 00000000..ac9b2ecb --- /dev/null +++ b/lib/merge_ruby_client/hris/locations/types/locations_list_request_remote_fields.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Hris + class Locations + class LocationsListRequestRemoteFields + COUNTRY = "country" + COUNTRY_LOCATION_TYPE = "country,location_type" + LOCATION_TYPE = "location_type" + end + end + end +end diff --git a/lib/merge_ruby_client/hris/locations/types/locations_list_request_show_enum_origins.rb b/lib/merge_ruby_client/hris/locations/types/locations_list_request_show_enum_origins.rb new file mode 100644 index 00000000..49f6665d --- /dev/null +++ b/lib/merge_ruby_client/hris/locations/types/locations_list_request_show_enum_origins.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Hris + class Locations + class LocationsListRequestShowEnumOrigins + COUNTRY = "country" + COUNTRY_LOCATION_TYPE = "country,location_type" + LOCATION_TYPE = "location_type" + end + end + end +end diff --git a/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_remote_fields.rb b/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_remote_fields.rb new file mode 100644 index 00000000..ec725595 --- /dev/null +++ b/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_remote_fields.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Hris + class Locations + class LocationsRetrieveRequestRemoteFields + COUNTRY = "country" + COUNTRY_LOCATION_TYPE = "country,location_type" + LOCATION_TYPE = "location_type" + end + end + end +end diff --git a/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_show_enum_origins.rb b/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_show_enum_origins.rb new file mode 100644 index 00000000..43734782 --- /dev/null +++ b/lib/merge_ruby_client/hris/locations/types/locations_retrieve_request_show_enum_origins.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Hris + class Locations + class LocationsRetrieveRequestShowEnumOrigins + COUNTRY = "country" + COUNTRY_LOCATION_TYPE = "country,location_type" + LOCATION_TYPE = "location_type" + end + end + end +end diff --git a/lib/merge_ruby_client/hris/pay_groups/client.rb b/lib/merge_ruby_client/hris/pay_groups/client.rb index 59a28dd8..cb1e5da3 100644 --- a/lib/merge_ruby_client/hris/pay_groups/client.rb +++ b/lib/merge_ruby_client/hris/pay_groups/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.hris.pay_groups.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.hris.pay_groups.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/payroll_runs/client.rb b/lib/merge_ruby_client/hris/payroll_runs/client.rb index 908e5e8b..9fee963b 100644 --- a/lib/merge_ruby_client/hris/payroll_runs/client.rb +++ b/lib/merge_ruby_client/hris/payroll_runs/client.rb @@ -30,9 +30,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param ended_after [DateTime] If provided, will only return payroll runs ended after this datetime. # @param ended_before [DateTime] If provided, will only return payroll runs ended before this datetime. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -61,7 +66,7 @@ def initialize(request_client:) # ) # api.hris.payroll_runs.list def list(created_after: nil, created_before: nil, cursor: nil, ended_after: nil, ended_before: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, run_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, run_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -80,6 +85,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, ended_after: nil, "ended_before": ended_before, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -158,9 +164,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param ended_after [DateTime] If provided, will only return payroll runs ended after this datetime. # @param ended_before [DateTime] If provided, will only return payroll runs ended before this datetime. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -189,7 +200,7 @@ def initialize(request_client:) # ) # api.hris.payroll_runs.list def list(created_after: nil, created_before: nil, cursor: nil, ended_after: nil, ended_before: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, run_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, run_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -209,6 +220,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, ended_after: nil, "ended_before": ended_before, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/scopes/client.rb b/lib/merge_ruby_client/hris/scopes/client.rb index d9fac1de..6796b949 100644 --- a/lib/merge_ruby_client/hris/scopes/client.rb +++ b/lib/merge_ruby_client/hris/scopes/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::CommonModelScopeApi] @@ -53,7 +53,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::CommonModelScopeApi] @@ -87,14 +87,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Hris::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::CommonModelScopeApi] # @example @@ -103,7 +103,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.hris.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.hris.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -136,7 +136,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::CommonModelScopeApi] @@ -172,7 +172,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::CommonModelScopeApi] @@ -208,14 +208,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Hris::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::CommonModelScopeApi] # @example @@ -224,7 +224,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.hris.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.hris.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) Async do response = @request_client.conn.post do |req| diff --git a/lib/merge_ruby_client/hris/teams/client.rb b/lib/merge_ruby_client/hris/teams/client.rb index cc34d891..751d67d4 100644 --- a/lib/merge_ruby_client/hris/teams/client.rb +++ b/lib/merge_ruby_client/hris/teams/client.rb @@ -25,9 +25,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -44,7 +49,7 @@ def initialize(request_client:) # ) # api.hris.teams.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_team_id: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_team_id: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -62,6 +67,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -133,9 +139,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -152,7 +163,7 @@ def initialize(request_client:) # ) # api.hris.teams.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_team_id: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_team_id: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -171,6 +182,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/time_off/client.rb b/lib/merge_ruby_client/hris/time_off/client.rb index 280e0b91..05ad5426 100644 --- a/lib/merge_ruby_client/hris/time_off/client.rb +++ b/lib/merge_ruby_client/hris/time_off/client.rb @@ -40,9 +40,14 @@ def initialize(request_client:) # @param ended_before [DateTime] If provided, will only return time-offs that ended before this datetime. # @param expand [Merge::Hris::TimeOff::TimeOffListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -79,7 +84,7 @@ def initialize(request_client:) # ) # api.hris.time_off.list def list(approver_id: nil, created_after: nil, created_before: nil, cursor: nil, employee_id: nil, - ended_after: nil, ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, request_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, status: nil, request_options: nil) + ended_after: nil, ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, request_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, status: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -101,6 +106,7 @@ def list(approver_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -266,9 +272,14 @@ def initialize(request_client:) # @param ended_before [DateTime] If provided, will only return time-offs that ended before this datetime. # @param expand [Merge::Hris::TimeOff::TimeOffListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -305,7 +316,7 @@ def initialize(request_client:) # ) # api.hris.time_off.list def list(approver_id: nil, created_after: nil, created_before: nil, cursor: nil, employee_id: nil, - ended_after: nil, ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, request_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, status: nil, request_options: nil) + ended_after: nil, ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_fields: nil, remote_id: nil, request_type: nil, show_enum_origins: nil, started_after: nil, started_before: nil, status: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -328,6 +339,7 @@ def list(approver_id: nil, created_after: nil, created_before: nil, cursor: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/time_off_balances/client.rb b/lib/merge_ruby_client/hris/time_off_balances/client.rb index b3e7c09c..0fe43309 100644 --- a/lib/merge_ruby_client/hris/time_off_balances/client.rb +++ b/lib/merge_ruby_client/hris/time_off_balances/client.rb @@ -27,9 +27,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will only return time off balances for this employee. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -57,7 +62,7 @@ def initialize(request_client:) # ) # api.hris.time_off_balances.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, policy_type: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, policy_type: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -76,6 +81,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -157,9 +163,14 @@ def initialize(request_client:) # @param employee_id [String] If provided, will only return time off balances for this employee. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -187,7 +198,7 @@ def initialize(request_client:) # ) # api.hris.time_off_balances.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, policy_type: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, policy_type: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -207,6 +218,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/hris/timesheet_entries/client.rb b/lib/merge_ruby_client/hris/timesheet_entries/client.rb index ac8b4617..e49819f7 100644 --- a/lib/merge_ruby_client/hris/timesheet_entries/client.rb +++ b/lib/merge_ruby_client/hris/timesheet_entries/client.rb @@ -28,11 +28,18 @@ def initialize(request_client:) # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. # @param employee_id [String] If provided, will only return timesheet entries for this employee. - # @param ended_after [String] If provided, will only return timesheet entries ended after this datetime. - # @param ended_before [String] If provided, will only return timesheet entries ended before this datetime. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param ended_after [DateTime] If provided, will only return timesheet entries ended after this datetime. + # @param ended_before [DateTime] If provided, will only return timesheet entries ended before this datetime. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -40,8 +47,8 @@ def initialize(request_client:) # start_time, -start_time. # @param page_size [Integer] Number of results to return per page. # @param remote_id [String] The API provider's ID for the given object. - # @param started_after [String] If provided, will only return timesheet entries started after this datetime. - # @param started_before [String] If provided, will only return timesheet entries started before this datetime. + # @param started_after [DateTime] If provided, will only return timesheet entries started after this datetime. + # @param started_before [DateTime] If provided, will only return timesheet entries started before this datetime. # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::PaginatedTimesheetEntryList] # @example @@ -52,7 +59,7 @@ def initialize(request_client:) # ) # api.hris.timesheet_entries.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, ended_after: nil, - ended_before: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) + ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -70,8 +77,10 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "employee_id": employee_id, "ended_after": ended_after, "ended_before": ended_before, + "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "order_by": order_by, @@ -93,7 +102,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. # @param model [Hash] Request of type Merge::Hris::TimesheetEntryRequest, as a Hash - # * :employee (String) + # * :employee (Hash) # * :hours_worked (Float) # * :start_time (DateTime) # * :end_time (DateTime) @@ -132,6 +141,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # Returns a `TimesheetEntry` object with the given `id`. # # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param request_options [Merge::RequestOptions] @@ -143,7 +154,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.hris.timesheet_entries.retrieve(id: "id") - def retrieve(id:, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -155,6 +166,7 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) }.compact req.params = { **(request_options&.additional_query_parameters || {}), + "expand": expand, "include_remote_data": include_remote_data }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -214,11 +226,18 @@ def initialize(request_client:) # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. # @param employee_id [String] If provided, will only return timesheet entries for this employee. - # @param ended_after [String] If provided, will only return timesheet entries ended after this datetime. - # @param ended_before [String] If provided, will only return timesheet entries ended before this datetime. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param ended_after [DateTime] If provided, will only return timesheet entries ended after this datetime. + # @param ended_before [DateTime] If provided, will only return timesheet entries ended before this datetime. + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -226,8 +245,8 @@ def initialize(request_client:) # start_time, -start_time. # @param page_size [Integer] Number of results to return per page. # @param remote_id [String] The API provider's ID for the given object. - # @param started_after [String] If provided, will only return timesheet entries started after this datetime. - # @param started_before [String] If provided, will only return timesheet entries started before this datetime. + # @param started_after [DateTime] If provided, will only return timesheet entries started after this datetime. + # @param started_before [DateTime] If provided, will only return timesheet entries started before this datetime. # @param request_options [Merge::RequestOptions] # @return [Merge::Hris::PaginatedTimesheetEntryList] # @example @@ -238,7 +257,7 @@ def initialize(request_client:) # ) # api.hris.timesheet_entries.list def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, ended_after: nil, - ended_before: nil, include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) + ended_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, order_by: nil, page_size: nil, remote_id: nil, started_after: nil, started_before: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -257,8 +276,10 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, "employee_id": employee_id, "ended_after": ended_after, "ended_before": ended_before, + "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "order_by": order_by, @@ -281,7 +302,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, employee_id: nil, # @param is_debug_mode [Boolean] Whether to include debug fields (such as log file links) in the response. # @param run_async [Boolean] Whether or not third-party updates should be run asynchronously. # @param model [Hash] Request of type Merge::Hris::TimesheetEntryRequest, as a Hash - # * :employee (String) + # * :employee (Hash) # * :hours_worked (Float) # * :start_time (DateTime) # * :end_time (DateTime) @@ -322,6 +343,8 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # Returns a `TimesheetEntry` object with the given `id`. # # @param id [String] + # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param request_options [Merge::RequestOptions] @@ -333,7 +356,7 @@ def create(model:, is_debug_mode: nil, run_async: nil, request_options: nil) # api_key: "YOUR_AUTH_TOKEN" # ) # api.hris.timesheet_entries.retrieve(id: "id") - def retrieve(id:, include_remote_data: nil, request_options: nil) + def retrieve(id:, expand: nil, include_remote_data: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -346,6 +369,7 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) }.compact req.params = { **(request_options&.additional_query_parameters || {}), + "expand": expand, "include_remote_data": include_remote_data }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? diff --git a/lib/merge_ruby_client/hris/types/account_details.rb b/lib/merge_ruby_client/hris/types/account_details.rb index 3c634317..ea812fac 100644 --- a/lib/merge_ruby_client/hris/types/account_details.rb +++ b/lib/merge_ruby_client/hris/types/account_details.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "category_enum" +require "date" require "ostruct" require "json" @@ -32,6 +33,8 @@ class AccountDetails attr_reader :is_duplicate # @return [String] attr_reader :account_type + # @return [DateTime] The time at which account completes the linking flow. + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -54,10 +57,11 @@ class AccountDetails # incomplete Production Linked Accounts, and ignored duplicate Production Linked # Account sets. # @param account_type [String] + # @param completed_at [DateTime] The time at which account completes the linking flow. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::AccountDetails] def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OMIT, end_user_origin_id: OMIT, - end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, additional_properties: nil) + end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, completed_at: OMIT, additional_properties: nil) @id = id if id != OMIT @integration = integration if integration != OMIT @integration_slug = integration_slug if integration_slug != OMIT @@ -69,6 +73,7 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM @webhook_listener_url = webhook_listener_url if webhook_listener_url != OMIT @is_duplicate = is_duplicate if is_duplicate != OMIT @account_type = account_type if account_type != OMIT + @completed_at = completed_at if completed_at != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -81,7 +86,8 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM "status": status, "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -105,6 +111,7 @@ def self.from_json(json_object:) webhook_listener_url = parsed_json["webhook_listener_url"] is_duplicate = parsed_json["is_duplicate"] account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, integration: integration, @@ -117,6 +124,7 @@ def self.from_json(json_object:) webhook_listener_url: webhook_listener_url, is_duplicate: is_duplicate, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -146,6 +154,7 @@ def self.validate_raw(obj:) obj.webhook_listener_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_listener_url is not the expected type, validation failed.") obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.account_type&.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/hris/types/account_details_and_actions.rb b/lib/merge_ruby_client/hris/types/account_details_and_actions.rb index 2970608d..aa2a2e89 100644 --- a/lib/merge_ruby_client/hris/types/account_details_and_actions.rb +++ b/lib/merge_ruby_client/hris/types/account_details_and_actions.rb @@ -3,6 +3,7 @@ require_relative "category_enum" require_relative "account_details_and_actions_status_enum" require_relative "account_details_and_actions_integration" +require "date" require "ostruct" require "json" @@ -42,6 +43,8 @@ class AccountDetailsAndActions attr_reader :integration # @return [String] attr_reader :account_type + # @return [DateTime] + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -65,10 +68,11 @@ class AccountDetailsAndActions # Account sets. # @param integration [Merge::Hris::AccountDetailsAndActionsIntegration] # @param account_type [String] + # @param completed_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::AccountDetailsAndActions] def initialize(id:, status:, end_user_organization_name:, end_user_email_address:, webhook_listener_url:, - account_type:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) + account_type:, completed_at:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) @id = id @category = category if category != OMIT @status = status @@ -81,6 +85,7 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address @is_duplicate = is_duplicate if is_duplicate != OMIT @integration = integration if integration != OMIT @account_type = account_type + @completed_at = completed_at @additional_properties = additional_properties @_field_set = { "id": id, @@ -94,7 +99,8 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, "integration": integration, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -124,6 +130,7 @@ def self.from_json(json_object:) integration = Merge::Hris::AccountDetailsAndActionsIntegration.from_json(json_object: integration) end account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, category: category, @@ -137,6 +144,7 @@ def self.from_json(json_object:) is_duplicate: is_duplicate, integration: integration, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -167,6 +175,7 @@ def self.validate_raw(obj:) obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.integration.nil? || Merge::Hris::AccountDetailsAndActionsIntegration.validate_raw(obj: obj.integration) obj.account_type.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/hris/types/account_details_and_actions_status_enum.rb b/lib/merge_ruby_client/hris/types/account_details_and_actions_status_enum.rb index 028c11b5..625748b8 100644 --- a/lib/merge_ruby_client/hris/types/account_details_and_actions_status_enum.rb +++ b/lib/merge_ruby_client/hris/types/account_details_and_actions_status_enum.rb @@ -5,10 +5,12 @@ module Hris # - `COMPLETE` - COMPLETE # - `INCOMPLETE` - INCOMPLETE # - `RELINK_NEEDED` - RELINK_NEEDED + # - `IDLE` - IDLE class AccountDetailsAndActionsStatusEnum COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" + IDLE = "IDLE" end end end diff --git a/lib/merge_ruby_client/hris/types/account_integration.rb b/lib/merge_ruby_client/hris/types/account_integration.rb index 4aa67012..6efccc42 100644 --- a/lib/merge_ruby_client/hris/types/account_integration.rb +++ b/lib/merge_ruby_client/hris/types/account_integration.rb @@ -17,10 +17,9 @@ class AccountIntegration # @return [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. attr_reader :categories - # @return [String] Company logo in rectangular shape. Upload an image with a clear - # background. + # @return [String] Company logo in rectangular shape. attr_reader :image - # @return [String] Company logo in square shape. Upload an image with a white background. + # @return [String] Company logo in square shape. attr_reader :square_image # @return [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. @@ -52,9 +51,8 @@ class AccountIntegration # SuccessFactors) # @param categories [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. - # @param image [String] Company logo in rectangular shape. Upload an image with a clear - # background. - # @param square_image [String] Company logo in square shape. Upload an image with a white background. + # @param image [String] Company logo in rectangular shape. + # @param square_image [String] Company logo in square shape. # @param color [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. # @param slug [String] diff --git a/lib/merge_ruby_client/hris/types/audit_log_event.rb b/lib/merge_ruby_client/hris/types/audit_log_event.rb index de559bf5..8bcc8d9d 100644 --- a/lib/merge_ruby_client/hris/types/audit_log_event.rb +++ b/lib/merge_ruby_client/hris/types/audit_log_event.rb @@ -65,6 +65,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -136,6 +142,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK diff --git a/lib/merge_ruby_client/hris/types/bank_info.rb b/lib/merge_ruby_client/hris/types/bank_info.rb index f8fc3e99..b847f05c 100644 --- a/lib/merge_ruby_client/hris/types/bank_info.rb +++ b/lib/merge_ruby_client/hris/types/bank_info.rb @@ -40,7 +40,9 @@ class BankInfo # @return [DateTime] When the matching bank object was created in the third party system. attr_reader :remote_created_at # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -67,7 +69,9 @@ class BankInfo # - `CHECKING` - CHECKING # @param remote_created_at [DateTime] When the matching bank object was created in the third party system. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/benefit.rb b/lib/merge_ruby_client/hris/types/benefit.rb index ddaaaaa3..ee9b09f7 100644 --- a/lib/merge_ruby_client/hris/types/benefit.rb +++ b/lib/merge_ruby_client/hris/types/benefit.rb @@ -38,7 +38,9 @@ class Benefit # @return [DateTime] The day and time the benefit ended. attr_reader :end_date # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [String] The employer benefit plan the employee is enrolled in. attr_reader :employer_benefit @@ -66,7 +68,9 @@ class Benefit # @param start_date [DateTime] The day and time the benefit started. # @param end_date [DateTime] The day and time the benefit ended. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param employer_benefit [String] The employer benefit plan the employee is enrolled in. # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] diff --git a/lib/merge_ruby_client/hris/types/company.rb b/lib/merge_ruby_client/hris/types/company.rb index 4629068b..544a358e 100644 --- a/lib/merge_ruby_client/hris/types/company.rb +++ b/lib/merge_ruby_client/hris/types/company.rb @@ -30,7 +30,9 @@ class Company # @return [Array] The company's Employer Identification Numbers. attr_reader :eins # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -52,7 +54,9 @@ class Company # @param display_name [String] The company's display name. # @param eins [Array] The company's Employer Identification Numbers. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/deduction.rb b/lib/merge_ruby_client/hris/types/deduction.rb index 73dcf784..f41909e9 100644 --- a/lib/merge_ruby_client/hris/types/deduction.rb +++ b/lib/merge_ruby_client/hris/types/deduction.rb @@ -33,7 +33,9 @@ class Deduction # @return [Float] The amount of money that is withheld on behalf of an employee by the company. attr_reader :company_deduction # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -57,7 +59,9 @@ class Deduction # employee. # @param company_deduction [Float] The amount of money that is withheld on behalf of an employee by the company. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/dependent.rb b/lib/merge_ruby_client/hris/types/dependent.rb index 2d434e52..95fe7eb7 100644 --- a/lib/merge_ruby_client/hris/types/dependent.rb +++ b/lib/merge_ruby_client/hris/types/dependent.rb @@ -56,7 +56,9 @@ class Dependent # @return [String] The dependents's social security number. attr_reader :ssn # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -94,7 +96,9 @@ class Dependent # @param is_student [Boolean] Whether or not the dependent is a student # @param ssn [String] The dependents's social security number. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/earning.rb b/lib/merge_ruby_client/hris/types/earning.rb index 629c6e53..e0c74e4f 100644 --- a/lib/merge_ruby_client/hris/types/earning.rb +++ b/lib/merge_ruby_client/hris/types/earning.rb @@ -34,7 +34,9 @@ class Earning # - `BONUS` - BONUS attr_reader :type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -60,7 +62,9 @@ class Earning # - `OVERTIME` - OVERTIME # - `BONUS` - BONUS # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/employee.rb b/lib/merge_ruby_client/hris/types/employee.rb index e6aafcc4..0384b163 100644 --- a/lib/merge_ruby_client/hris/types/employee.rb +++ b/lib/merge_ruby_client/hris/types/employee.rb @@ -22,7 +22,8 @@ module Hris # # The Employee Object # ### Description # The `Employee` object is used to represent any person who has been employed by a - # company. + # company. By default, it returns all employees. To filter for only active + # employees, set the `employment_status` query parameter to `ACTIVE`. # ### Usage Example # Fetch from the `LIST Employee` endpoint and filter by `ID` to show all # employees. @@ -121,7 +122,10 @@ class Employee attr_reader :avatar # @return [Hash{String => Object}] Custom fields configured for a given model. attr_reader :custom_fields - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -196,7 +200,10 @@ class Employee # @param termination_date [DateTime] The employee's termination date. # @param avatar [String] The URL of the employee's avatar image. # @param custom_fields [Hash{String => Object}] Custom fields configured for a given model. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/employee_payroll_run.rb b/lib/merge_ruby_client/hris/types/employee_payroll_run.rb index 3a4dad19..ed36ef31 100644 --- a/lib/merge_ruby_client/hris/types/employee_payroll_run.rb +++ b/lib/merge_ruby_client/hris/types/employee_payroll_run.rb @@ -51,7 +51,9 @@ class EmployeePayrollRun # @return [Array] attr_reader :taxes # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -82,7 +84,9 @@ class EmployeePayrollRun # @param deductions [Array] # @param taxes [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/employee_request.rb b/lib/merge_ruby_client/hris/types/employee_request.rb index 73616654..1560b613 100644 --- a/lib/merge_ruby_client/hris/types/employee_request.rb +++ b/lib/merge_ruby_client/hris/types/employee_request.rb @@ -21,7 +21,8 @@ module Hris # # The Employee Object # ### Description # The `Employee` object is used to represent any person who has been employed by a - # company. + # company. By default, it returns all employees. To filter for only active + # employees, set the `employment_status` query parameter to `ACTIVE`. # ### Usage Example # Fetch from the `LIST Employee` endpoint and filter by `ID` to show all # employees. diff --git a/lib/merge_ruby_client/hris/types/employer_benefit.rb b/lib/merge_ruby_client/hris/types/employer_benefit.rb index 9ef63423..3ec0e7d2 100644 --- a/lib/merge_ruby_client/hris/types/employer_benefit.rb +++ b/lib/merge_ruby_client/hris/types/employer_benefit.rb @@ -2,6 +2,7 @@ require "date" require_relative "benefit_plan_type_enum" +require_relative "remote_data" require "ostruct" require "json" @@ -37,11 +38,13 @@ class EmployerBenefit # @return [String] The employer benefit's deduction code. attr_reader :deduction_code # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -65,9 +68,11 @@ class EmployerBenefit # @param description [String] The employer benefit's description. # @param deduction_code [String] The employer benefit's deduction code. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::EmployerBenefit] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, benefit_plan_type: OMIT, @@ -118,7 +123,10 @@ def self.from_json(json_object:) deduction_code = parsed_json["deduction_code"] remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Hris::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, diff --git a/lib/merge_ruby_client/hris/types/employment.rb b/lib/merge_ruby_client/hris/types/employment.rb index da86f4bb..900418ff 100644 --- a/lib/merge_ruby_client/hris/types/employment.rb +++ b/lib/merge_ruby_client/hris/types/employment.rb @@ -17,9 +17,11 @@ module Hris # # The Employment Object # ### Description # The `Employment` object is used to represent a job position at a company. - # Please note: When there is a change in pay or title, integrations with - # historical data will create new Employment objects while integrations without - # historical data will update existing ones. + # If an integration supports historical tracking of employments, it will be + # reflected in the data. If not, a new `Employment` object will be created + # whenever there is a change in job title or pay. The `effective_date` field + # should be used to order `Employment` objects, with the most recent date + # corresponding to the latest employment record for an employee. # ### Usage Example # Fetch from the `LIST Employments` endpoint and filter by `ID` to show all # employees. @@ -36,7 +38,7 @@ class Employment attr_reader :employee # @return [String] The position's title. attr_reader :job_title - # @return [Float] The position's pay rate in dollars. + # @return [Float] The position's pay rate. attr_reader :pay_rate # @return [Merge::Hris::PayPeriodEnum] The time period this pay rate encompasses. # - `HOUR` - HOUR @@ -386,7 +388,9 @@ class Employment # - `FREELANCE` - FREELANCE attr_reader :employment_type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -406,7 +410,7 @@ class Employment # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param employee [Merge::Hris::EmploymentEmployee] The employee holding this position. # @param job_title [String] The position's title. - # @param pay_rate [Float] The position's pay rate in dollars. + # @param pay_rate [Float] The position's pay rate. # @param pay_period [Merge::Hris::PayPeriodEnum] The time period this pay rate encompasses. # - `HOUR` - HOUR # - `DAY` - DAY @@ -748,7 +752,9 @@ class Employment # - `CONTRACTOR` - CONTRACTOR # - `FREELANCE` - FREELANCE # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/event_type_enum.rb b/lib/merge_ruby_client/hris/types/event_type_enum.rb index 806bfc6f..3d9395ef 100644 --- a/lib/merge_ruby_client/hris/types/event_type_enum.rb +++ b/lib/merge_ruby_client/hris/types/event_type_enum.rb @@ -40,6 +40,12 @@ module Hris # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -79,6 +85,9 @@ class EventTypeEnum CHANGED_LINKED_ACCOUNT_FIELD_MAPPING = "CHANGED_LINKED_ACCOUNT_FIELD_MAPPING" DELETED_INTEGRATION_WIDE_FIELD_MAPPING = "DELETED_INTEGRATION_WIDE_FIELD_MAPPING" DELETED_LINKED_ACCOUNT_FIELD_MAPPING = "DELETED_LINKED_ACCOUNT_FIELD_MAPPING" + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC" MUTED_ISSUE = "MUTED_ISSUE" GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK" diff --git a/lib/merge_ruby_client/hris/types/field_mapping_api_instance_remote_field.rb b/lib/merge_ruby_client/hris/types/field_mapping_api_instance_remote_field.rb index 2c28c784..816ade21 100644 --- a/lib/merge_ruby_client/hris/types/field_mapping_api_instance_remote_field.rb +++ b/lib/merge_ruby_client/hris/types/field_mapping_api_instance_remote_field.rb @@ -26,16 +26,18 @@ class FieldMappingApiInstanceRemoteField # @param remote_endpoint_info [Merge::Hris::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::FieldMappingApiInstanceRemoteField] - def initialize(remote_key_name:, schema:, remote_endpoint_info:, additional_properties: nil) - @remote_key_name = remote_key_name - @schema = schema + def initialize(remote_endpoint_info:, remote_key_name: OMIT, schema: OMIT, additional_properties: nil) + @remote_key_name = remote_key_name if remote_key_name != OMIT + @schema = schema if schema != OMIT @remote_endpoint_info = remote_endpoint_info @additional_properties = additional_properties @_field_set = { "remote_key_name": remote_key_name, "schema": schema, "remote_endpoint_info": remote_endpoint_info - } + }.reject do |_k, v| + v == OMIT + end end # Deserialize a JSON object to an instance of FieldMappingApiInstanceRemoteField @@ -75,8 +77,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") - obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.schema&.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") Merge::Hris::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) end end diff --git a/lib/merge_ruby_client/hris/types/field_permission_deserializer.rb b/lib/merge_ruby_client/hris/types/field_permission_deserializer.rb index fe9682c6..2b419a9f 100644 --- a/lib/merge_ruby_client/hris/types/field_permission_deserializer.rb +++ b/lib/merge_ruby_client/hris/types/field_permission_deserializer.rb @@ -7,9 +7,9 @@ module Merge module Hris class FieldPermissionDeserializer # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializer OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::FieldPermissionDeserializer] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/hris/types/field_permission_deserializer_request.rb b/lib/merge_ruby_client/hris/types/field_permission_deserializer_request.rb index 3c3c7d4a..3f53e283 100644 --- a/lib/merge_ruby_client/hris/types/field_permission_deserializer_request.rb +++ b/lib/merge_ruby_client/hris/types/field_permission_deserializer_request.rb @@ -7,9 +7,9 @@ module Merge module Hris class FieldPermissionDeserializerRequest # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializerRequest OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::FieldPermissionDeserializerRequest] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/hris/types/group.rb b/lib/merge_ruby_client/hris/types/group.rb index cadb7260..ed32e8c2 100644 --- a/lib/merge_ruby_client/hris/types/group.rb +++ b/lib/merge_ruby_client/hris/types/group.rb @@ -36,7 +36,9 @@ class Group # - `GROUP` - GROUP attr_reader :type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Boolean] Indicates whether the Group refers to a team in the third party platform. Note # that this is an opinionated view based on how Merge observes most organizations @@ -68,7 +70,9 @@ class Group # - `BUSINESS_UNIT` - BUSINESS_UNIT # - `GROUP` - GROUP # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param is_commonly_used_as_team [Boolean] Indicates whether the Group refers to a team in the third party platform. Note # that this is an opinionated view based on how Merge observes most organizations # representing teams in each third party platform. If your customer uses a diff --git a/lib/merge_ruby_client/hris/types/language_enum.rb b/lib/merge_ruby_client/hris/types/language_enum.rb new file mode 100644 index 00000000..e1b9b5d3 --- /dev/null +++ b/lib/merge_ruby_client/hris/types/language_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Hris + # - `en` - en + # - `de` - de + class LanguageEnum + EN = "en" + DE = "de" + end + end +end diff --git a/lib/merge_ruby_client/hris/types/location.rb b/lib/merge_ruby_client/hris/types/location.rb index d36001e0..7b444197 100644 --- a/lib/merge_ruby_client/hris/types/location.rb +++ b/lib/merge_ruby_client/hris/types/location.rb @@ -295,7 +295,9 @@ class Location # - `WORK` - WORK attr_reader :location_type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -574,7 +576,9 @@ class Location # - `HOME` - HOME # - `WORK` - WORK # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/pay_group.rb b/lib/merge_ruby_client/hris/types/pay_group.rb index 737b9574..6fa63575 100644 --- a/lib/merge_ruby_client/hris/types/pay_group.rb +++ b/lib/merge_ruby_client/hris/types/pay_group.rb @@ -26,7 +26,9 @@ class PayGroup # @return [String] The pay group name. attr_reader :pay_group_name # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -46,7 +48,9 @@ class PayGroup # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param pay_group_name [String] The pay group name. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/payroll_run.rb b/lib/merge_ruby_client/hris/types/payroll_run.rb index d40e71d1..d80c2e00 100644 --- a/lib/merge_ruby_client/hris/types/payroll_run.rb +++ b/lib/merge_ruby_client/hris/types/payroll_run.rb @@ -46,7 +46,9 @@ class PayrollRun # @return [DateTime] The day and time the payroll run was checked. attr_reader :check_date # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -80,7 +82,9 @@ class PayrollRun # @param end_date [DateTime] The day and time the payroll run ended. # @param check_date [DateTime] The day and time the payroll run was checked. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/remote_data.rb b/lib/merge_ruby_client/hris/types/remote_data.rb index 9aeeb289..15e34717 100644 --- a/lib/merge_ruby_client/hris/types/remote_data.rb +++ b/lib/merge_ruby_client/hris/types/remote_data.rb @@ -5,8 +5,14 @@ module Merge module Hris + # # The RemoteData Object + # ### Description + # The `RemoteData` object is used to represent the full data pulled from the + # third-party API for an object. + # ### Usage Example + # TODO class RemoteData - # @return [String] + # @return [String] The third-party API path that is being called. attr_reader :path # @return [Object] attr_reader :data @@ -18,7 +24,7 @@ class RemoteData OMIT = Object.new - # @param path [String] + # @param path [String] The third-party API path that is being called. # @param data [Object] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::RemoteData] diff --git a/lib/merge_ruby_client/hris/types/tax.rb b/lib/merge_ruby_client/hris/types/tax.rb index 41b0ff89..24f7b3ac 100644 --- a/lib/merge_ruby_client/hris/types/tax.rb +++ b/lib/merge_ruby_client/hris/types/tax.rb @@ -31,7 +31,9 @@ class Tax # @return [Boolean] Whether or not the employer is responsible for paying the tax. attr_reader :employer_tax # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -54,7 +56,9 @@ class Tax # @param amount [Float] The tax amount. # @param employer_tax [Boolean] Whether or not the employer is responsible for paying the tax. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/team.rb b/lib/merge_ruby_client/hris/types/team.rb index 14fc2201..8967fbd0 100644 --- a/lib/merge_ruby_client/hris/types/team.rb +++ b/lib/merge_ruby_client/hris/types/team.rb @@ -30,7 +30,9 @@ class Team # @return [Merge::Hris::TeamParentTeam] The team's parent team. attr_reader :parent_team # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -51,7 +53,9 @@ class Team # @param name [String] The team's name. # @param parent_team [Merge::Hris::TeamParentTeam] The team's parent team. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/time_off.rb b/lib/merge_ruby_client/hris/types/time_off.rb index 6af7d17b..e9e5f8ce 100644 --- a/lib/merge_ruby_client/hris/types/time_off.rb +++ b/lib/merge_ruby_client/hris/types/time_off.rb @@ -58,7 +58,10 @@ class TimeOff attr_reader :start_time # @return [DateTime] The day and time of the end of the time requested off. attr_reader :end_time - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -98,7 +101,10 @@ class TimeOff # - `BEREAVEMENT` - BEREAVEMENT # @param start_time [DateTime] The day and time of the start of the time requested off. # @param end_time [DateTime] The day and time of the end of the time requested off. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/time_off_balance.rb b/lib/merge_ruby_client/hris/types/time_off_balance.rb index 02418549..97fbceb8 100644 --- a/lib/merge_ruby_client/hris/types/time_off_balance.rb +++ b/lib/merge_ruby_client/hris/types/time_off_balance.rb @@ -27,9 +27,11 @@ class TimeOffBalance attr_reader :modified_at # @return [Merge::Hris::TimeOffBalanceEmployee] The employee the balance belongs to. attr_reader :employee - # @return [Float] The current remaining PTO balance, always measured in terms of hours. + # @return [Float] The current remaining PTO balance, measured in hours. For integrations that + # return this value in days, Merge multiplies by 8 to calculate hours. attr_reader :balance - # @return [Float] The amount of PTO used in terms of hours. + # @return [Float] The amount of PTO used in terms of hours. For integrations that return this + # value in days, Merge multiplies by 8 to calculate hours. attr_reader :used # @return [Merge::Hris::PolicyTypeEnum] The policy type of this time off balance. # - `VACATION` - VACATION @@ -40,7 +42,9 @@ class TimeOffBalance # - `BEREAVEMENT` - BEREAVEMENT attr_reader :policy_type # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -59,8 +63,10 @@ class TimeOffBalance # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param employee [Merge::Hris::TimeOffBalanceEmployee] The employee the balance belongs to. - # @param balance [Float] The current remaining PTO balance, always measured in terms of hours. - # @param used [Float] The amount of PTO used in terms of hours. + # @param balance [Float] The current remaining PTO balance, measured in hours. For integrations that + # return this value in days, Merge multiplies by 8 to calculate hours. + # @param used [Float] The amount of PTO used in terms of hours. For integrations that return this + # value in days, Merge multiplies by 8 to calculate hours. # @param policy_type [Merge::Hris::PolicyTypeEnum] The policy type of this time off balance. # - `VACATION` - VACATION # - `SICK` - SICK @@ -69,7 +75,9 @@ class TimeOffBalance # - `VOLUNTEER` - VOLUNTEER # - `BEREAVEMENT` - BEREAVEMENT # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/hris/types/timesheet_entry.rb b/lib/merge_ruby_client/hris/types/timesheet_entry.rb index f7ab955a..0d88c7f5 100644 --- a/lib/merge_ruby_client/hris/types/timesheet_entry.rb +++ b/lib/merge_ruby_client/hris/types/timesheet_entry.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true require "date" +require_relative "timesheet_entry_employee" +require_relative "remote_data" require "ostruct" require "json" @@ -21,7 +23,7 @@ class TimesheetEntry attr_reader :created_at # @return [DateTime] The datetime that this object was modified by Merge. attr_reader :modified_at - # @return [String] The employee the timesheet entry is for. + # @return [Merge::Hris::TimesheetEntryEmployee] The employee the timesheet entry is for. attr_reader :employee # @return [Float] The number of hours logged by the employee. attr_reader :hours_worked @@ -30,11 +32,13 @@ class TimesheetEntry # @return [DateTime] The time at which the employee ended work. attr_reader :end_time # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings - # @return [Array Object}>] + # @return [Array] attr_reader :remote_data # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties @@ -48,14 +52,16 @@ class TimesheetEntry # @param remote_id [String] The third-party API ID of the matching object. # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. - # @param employee [String] The employee the timesheet entry is for. + # @param employee [Merge::Hris::TimesheetEntryEmployee] The employee the timesheet entry is for. # @param hours_worked [Float] The number of hours logged by the employee. # @param start_time [DateTime] The time at which the employee started work. # @param end_time [DateTime] The time at which the employee ended work. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] - # @param remote_data [Array Object}>] + # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Hris::TimesheetEntry] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, employee: OMIT, @@ -100,13 +106,21 @@ def self.from_json(json_object:) remote_id = parsed_json["remote_id"] created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) - employee = parsed_json["employee"] + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Hris::TimesheetEntryEmployee.from_json(json_object: employee) + end hours_worked = parsed_json["hours_worked"] start_time = (DateTime.parse(parsed_json["start_time"]) unless parsed_json["start_time"].nil?) end_time = (DateTime.parse(parsed_json["end_time"]) unless parsed_json["end_time"].nil?) remote_was_deleted = parsed_json["remote_was_deleted"] field_mappings = parsed_json["field_mappings"] - remote_data = parsed_json["remote_data"] + remote_data = parsed_json["remote_data"]&.map do |item| + item = item.to_json + Merge::Hris::RemoteData.from_json(json_object: item) + end new( id: id, remote_id: remote_id, @@ -141,7 +155,7 @@ def self.validate_raw(obj:) obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") - obj.employee&.is_a?(String) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") + obj.employee.nil? || Merge::Hris::TimesheetEntryEmployee.validate_raw(obj: obj.employee) obj.hours_worked&.is_a?(Float) != false || raise("Passed value for field obj.hours_worked is not the expected type, validation failed.") obj.start_time&.is_a?(DateTime) != false || raise("Passed value for field obj.start_time is not the expected type, validation failed.") obj.end_time&.is_a?(DateTime) != false || raise("Passed value for field obj.end_time is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/hris/types/timesheet_entry_employee.rb b/lib/merge_ruby_client/hris/types/timesheet_entry_employee.rb new file mode 100644 index 00000000..7c61bda0 --- /dev/null +++ b/lib/merge_ruby_client/hris/types/timesheet_entry_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Hris + # The employee the timesheet entry is for. + class TimesheetEntryEmployee + # Deserialize a JSON object to an instance of TimesheetEntryEmployee + # + # @param json_object [String] + # @return [Merge::Hris::TimesheetEntryEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Hris::Employee.validate_raw(obj: struct) + return Merge::Hris::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Hris::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/hris/types/timesheet_entry_request.rb b/lib/merge_ruby_client/hris/types/timesheet_entry_request.rb index d07476dc..179de68b 100644 --- a/lib/merge_ruby_client/hris/types/timesheet_entry_request.rb +++ b/lib/merge_ruby_client/hris/types/timesheet_entry_request.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require_relative "timesheet_entry_request_employee" require "date" require "ostruct" require "json" @@ -13,7 +14,7 @@ module Hris # ### Usage Example # GET and POST Timesheet Entries class TimesheetEntryRequest - # @return [String] The employee the timesheet entry is for. + # @return [Merge::Hris::TimesheetEntryRequestEmployee] The employee the timesheet entry is for. attr_reader :employee # @return [Float] The number of hours logged by the employee. attr_reader :hours_worked @@ -33,7 +34,7 @@ class TimesheetEntryRequest OMIT = Object.new - # @param employee [String] The employee the timesheet entry is for. + # @param employee [Merge::Hris::TimesheetEntryRequestEmployee] The employee the timesheet entry is for. # @param hours_worked [Float] The number of hours logged by the employee. # @param start_time [DateTime] The time at which the employee started work. # @param end_time [DateTime] The time at which the employee ended work. @@ -69,7 +70,12 @@ def initialize(employee: OMIT, hours_worked: OMIT, start_time: OMIT, end_time: O def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - employee = parsed_json["employee"] + if parsed_json["employee"].nil? + employee = nil + else + employee = parsed_json["employee"].to_json + employee = Merge::Hris::TimesheetEntryRequestEmployee.from_json(json_object: employee) + end hours_worked = parsed_json["hours_worked"] start_time = (DateTime.parse(parsed_json["start_time"]) unless parsed_json["start_time"].nil?) end_time = (DateTime.parse(parsed_json["end_time"]) unless parsed_json["end_time"].nil?) @@ -100,7 +106,7 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.employee&.is_a?(String) != false || raise("Passed value for field obj.employee is not the expected type, validation failed.") + obj.employee.nil? || Merge::Hris::TimesheetEntryRequestEmployee.validate_raw(obj: obj.employee) obj.hours_worked&.is_a?(Float) != false || raise("Passed value for field obj.hours_worked is not the expected type, validation failed.") obj.start_time&.is_a?(DateTime) != false || raise("Passed value for field obj.start_time is not the expected type, validation failed.") obj.end_time&.is_a?(DateTime) != false || raise("Passed value for field obj.end_time is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/hris/types/timesheet_entry_request_employee.rb b/lib/merge_ruby_client/hris/types/timesheet_entry_request_employee.rb new file mode 100644 index 00000000..fadbda07 --- /dev/null +++ b/lib/merge_ruby_client/hris/types/timesheet_entry_request_employee.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "employee" + +module Merge + module Hris + # The employee the timesheet entry is for. + class TimesheetEntryRequestEmployee + # Deserialize a JSON object to an instance of TimesheetEntryRequestEmployee + # + # @param json_object [String] + # @return [Merge::Hris::TimesheetEntryRequestEmployee] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Hris::Employee.validate_raw(obj: struct) + return Merge::Hris::Employee.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Hris::Employee.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/accounts/client.rb b/lib/merge_ruby_client/ticketing/accounts/client.rb index f390d370..55d3fc3c 100644 --- a/lib/merge_ruby_client/ticketing/accounts/client.rb +++ b/lib/merge_ruby_client/ticketing/accounts/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ticketing.accounts.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ticketing.accounts.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/async_passthrough/client.rb b/lib/merge_ruby_client/ticketing/async_passthrough/client.rb index bd1d497a..ef1f569b 100644 --- a/lib/merge_ruby_client/ticketing/async_passthrough/client.rb +++ b/lib/merge_ruby_client/ticketing/async_passthrough/client.rb @@ -3,7 +3,7 @@ require_relative "../../../requests" require_relative "../types/data_passthrough_request" require_relative "../types/async_passthrough_reciept" -require_relative "../types/remote_response" +require_relative "types/async_passthrough_retrieve_response" require "async" module Merge @@ -61,7 +61,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Ticketing::RemoteResponse] + # @return [Merge::Ticketing::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -87,7 +87,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Ticketing::RemoteResponse.from_json(json_object: response.body) + Merge::Ticketing::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end @@ -146,7 +146,7 @@ def create(request:, request_options: nil) # # @param async_passthrough_receipt_id [String] # @param request_options [Merge::RequestOptions] - # @return [Merge::Ticketing::RemoteResponse] + # @return [Merge::Ticketing::RemoteResponse, String] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", @@ -173,7 +173,7 @@ def retrieve(async_passthrough_receipt_id:, request_options: nil) end req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/async-passthrough/#{async_passthrough_receipt_id}" end - Merge::Ticketing::RemoteResponse.from_json(json_object: response.body) + Merge::Ticketing::AsyncPassthrough::AsyncPassthroughRetrieveResponse.from_json(json_object: response.body) end end end diff --git a/lib/merge_ruby_client/ticketing/async_passthrough/types/async_passthrough_retrieve_response.rb b/lib/merge_ruby_client/ticketing/async_passthrough/types/async_passthrough_retrieve_response.rb new file mode 100644 index 00000000..bf7dcb80 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/async_passthrough/types/async_passthrough_retrieve_response.rb @@ -0,0 +1,57 @@ +# frozen_string_literal: true + +require "json" +require_relative "../../types/remote_response" + +module Merge + module Ticketing + class AsyncPassthrough + class AsyncPassthroughRetrieveResponse + # Deserialize a JSON object to an instance of AsyncPassthroughRetrieveResponse + # + # @param json_object [String] + # @return [Merge::Ticketing::AsyncPassthrough::AsyncPassthroughRetrieveResponse] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + Merge::Ticketing::RemoteResponse.validate_raw(obj: struct) + return Merge::Ticketing::RemoteResponse.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return Merge::Ticketing::RemoteResponse.validate_raw(obj: obj) + rescue StandardError + # noop + end + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/attachments/client.rb b/lib/merge_ruby_client/ticketing/attachments/client.rb index ef3b0d86..b4c548df 100644 --- a/lib/merge_ruby_client/ticketing/attachments/client.rb +++ b/lib/merge_ruby_client/ticketing/attachments/client.rb @@ -28,9 +28,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -49,7 +54,7 @@ def initialize(request_client:) # ) # api.ticketing.attachments.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -67,6 +72,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -252,9 +258,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -273,7 +284,7 @@ def initialize(request_client:) # ) # api.ticketing.attachments.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -292,6 +303,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/audit_trail/client.rb b/lib/merge_ruby_client/ticketing/audit_trail/client.rb index 6ecff1d4..8fce5a9c 100644 --- a/lib/merge_ruby_client/ticketing/audit_trail/client.rb +++ b/lib/merge_ruby_client/ticketing/audit_trail/client.rb @@ -38,7 +38,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` @@ -117,7 +120,10 @@ def initialize(request_client:) # `CHANGED_INTEGRATION_WIDE_FIELD_MAPPING`, # `CHANGED_LINKED_ACCOUNT_FIELD_MAPPING`, # `DELETED_INTEGRATION_WIDE_FIELD_MAPPING`, - # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, `FORCED_LINKED_ACCOUNT_RESYNC`, + # `DELETED_LINKED_ACCOUNT_FIELD_MAPPING`, + # `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, + # `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE`, `FORCED_LINKED_ACCOUNT_RESYNC`, # `MUTED_ISSUE`, `GENERATED_MAGIC_LINK`, `ENABLED_MERGE_WEBHOOK`, # `DISABLED_MERGE_WEBHOOK`, `MERGE_WEBHOOK_TARGET_CHANGED`, # `END_USER_CREDENTIALS_ACCESSED` diff --git a/lib/merge_ruby_client/ticketing/collections/client.rb b/lib/merge_ruby_client/ticketing/collections/client.rb index d1f5f7f7..df896113 100644 --- a/lib/merge_ruby_client/ticketing/collections/client.rb +++ b/lib/merge_ruby_client/ticketing/collections/client.rb @@ -2,10 +2,10 @@ require_relative "../../../requests" require "date" +require_relative "types/collections_list_request_expand" require_relative "../types/paginated_collection_list" +require_relative "types/collections_retrieve_request_expand" require_relative "../types/collection" -require_relative "types/collections_users_list_request_expand" -require_relative "../types/paginated_user_list" require "async" module Merge @@ -26,11 +26,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # @param expand [Merge::Ticketing::Collections::CollectionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -52,7 +57,7 @@ def initialize(request_client:) # ) # api.ticketing.collections.list def list(collection_type: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_collection_id: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_collection_id: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -71,6 +76,7 @@ def list(collection_type: nil, created_after: nil, created_before: nil, cursor: "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -90,7 +96,7 @@ def list(collection_type: nil, created_after: nil, created_before: nil, cursor: # Returns a `Collection` object with the given `id`. # # @param id [String] - # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # @param expand [Merge::Ticketing::Collections::CollectionsRetrieveRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. @@ -132,52 +138,6 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho end Merge::Ticketing::Collection.from_json(json_object: response.body) end - - # Returns a list of `User` objects. - # - # @param parent_id [String] - # @param cursor [String] The pagination cursor value. - # @param expand [Merge::Ticketing::Collections::CollectionsUsersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names - # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. - # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to - # produce these models. - # @param page_size [Integer] Number of results to return per page. - # @param request_options [Merge::RequestOptions] - # @return [Merge::Ticketing::PaginatedUserList] - # @example - # api = Merge::Client.new( - # base_url: "https://api.example.com", - # environment: Merge::Environment::PRODUCTION, - # api_key: "YOUR_AUTH_TOKEN" - # ) - # api.ticketing.collections.users_list(parent_id: "parent_id") - def users_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, - page_size: nil, request_options: nil) - response = @request_client.conn.get do |req| - req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? - req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? - req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? - req.headers = { - **(req.headers || {}), - **@request_client.get_headers, - **(request_options&.additional_headers || {}) - }.compact - req.params = { - **(request_options&.additional_query_parameters || {}), - "cursor": cursor, - "expand": expand, - "include_deleted_data": include_deleted_data, - "include_remote_data": include_remote_data, - "page_size": page_size - }.compact - unless request_options.nil? || request_options&.additional_body_parameters.nil? - req.body = { **(request_options&.additional_body_parameters || {}) }.compact - end - req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/collections/#{parent_id}/users" - end - Merge::Ticketing::PaginatedUserList.from_json(json_object: response.body) - end end class AsyncCollectionsClient @@ -196,11 +156,16 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # @param expand [Merge::Ticketing::Collections::CollectionsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -222,7 +187,7 @@ def initialize(request_client:) # ) # api.ticketing.collections.list def list(collection_type: nil, created_after: nil, created_before: nil, cursor: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_collection_id: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_collection_id: nil, remote_fields: nil, remote_id: nil, show_enum_origins: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -242,6 +207,7 @@ def list(collection_type: nil, created_after: nil, created_before: nil, cursor: "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -262,7 +228,7 @@ def list(collection_type: nil, created_after: nil, created_before: nil, cursor: # Returns a `Collection` object with the given `id`. # # @param id [String] - # @param expand [String] Which relations should be returned in expanded form. Multiple relation names + # @param expand [Merge::Ticketing::Collections::CollectionsRetrieveRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. @@ -306,54 +272,6 @@ def retrieve(id:, expand: nil, include_remote_data: nil, remote_fields: nil, sho Merge::Ticketing::Collection.from_json(json_object: response.body) end end - - # Returns a list of `User` objects. - # - # @param parent_id [String] - # @param cursor [String] The pagination cursor value. - # @param expand [Merge::Ticketing::Collections::CollectionsUsersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names - # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. - # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to - # produce these models. - # @param page_size [Integer] Number of results to return per page. - # @param request_options [Merge::RequestOptions] - # @return [Merge::Ticketing::PaginatedUserList] - # @example - # api = Merge::Client.new( - # base_url: "https://api.example.com", - # environment: Merge::Environment::PRODUCTION, - # api_key: "YOUR_AUTH_TOKEN" - # ) - # api.ticketing.collections.users_list(parent_id: "parent_id") - def users_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, - page_size: nil, request_options: nil) - Async do - response = @request_client.conn.get do |req| - req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? - req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? - req.headers["X-Account-Token"] = request_options.account_token unless request_options&.account_token.nil? - req.headers = { - **(req.headers || {}), - **@request_client.get_headers, - **(request_options&.additional_headers || {}) - }.compact - req.params = { - **(request_options&.additional_query_parameters || {}), - "cursor": cursor, - "expand": expand, - "include_deleted_data": include_deleted_data, - "include_remote_data": include_remote_data, - "page_size": page_size - }.compact - unless request_options.nil? || request_options&.additional_body_parameters.nil? - req.body = { **(request_options&.additional_body_parameters || {}) }.compact - end - req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/collections/#{parent_id}/users" - end - Merge::Ticketing::PaginatedUserList.from_json(json_object: response.body) - end - end end end end diff --git a/lib/merge_ruby_client/ticketing/collections/types/collections_list_request_expand.rb b/lib/merge_ruby_client/ticketing/collections/types/collections_list_request_expand.rb new file mode 100644 index 00000000..8bed1684 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/collections/types/collections_list_request_expand.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Ticketing + class Collections + class CollectionsListRequestExpand + PARENT_COLLECTION = "parent_collection" + TEAMS = "teams" + TEAMS_PARENT_COLLECTION = "teams,parent_collection" + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/collections/types/collections_retrieve_request_expand.rb b/lib/merge_ruby_client/ticketing/collections/types/collections_retrieve_request_expand.rb new file mode 100644 index 00000000..cedb3a45 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/collections/types/collections_retrieve_request_expand.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Ticketing + class Collections + class CollectionsRetrieveRequestExpand + PARENT_COLLECTION = "parent_collection" + TEAMS = "teams" + TEAMS_PARENT_COLLECTION = "teams,parent_collection" + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/collections/types/collections_users_list_request_expand.rb b/lib/merge_ruby_client/ticketing/collections/types/collections_users_list_request_expand.rb deleted file mode 100644 index f30e4948..00000000 --- a/lib/merge_ruby_client/ticketing/collections/types/collections_users_list_request_expand.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -module Merge - module Ticketing - class Collections - class CollectionsUsersListRequestExpand - ROLES = "roles" - TEAMS = "teams" - TEAMS_ROLES = "teams,roles" - end - end - end -end diff --git a/lib/merge_ruby_client/ticketing/comments/client.rb b/lib/merge_ruby_client/ticketing/comments/client.rb index 57edb5cb..f56e7d67 100644 --- a/lib/merge_ruby_client/ticketing/comments/client.rb +++ b/lib/merge_ruby_client/ticketing/comments/client.rb @@ -30,9 +30,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ticketing::Comments::CommentsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -51,7 +56,7 @@ def initialize(request_client:) # ) # api.ticketing.comments.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -69,6 +74,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -216,9 +222,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ticketing::Comments::CommentsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -237,7 +248,7 @@ def initialize(request_client:) # ) # api.ticketing.comments.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_created_after: nil, remote_id: nil, ticket_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -256,6 +267,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/contacts/client.rb b/lib/merge_ruby_client/ticketing/contacts/client.rb index f15e5436..d71d55b9 100644 --- a/lib/merge_ruby_client/ticketing/contacts/client.rb +++ b/lib/merge_ruby_client/ticketing/contacts/client.rb @@ -28,9 +28,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -46,7 +51,7 @@ def initialize(request_client:) # ) # api.ticketing.contacts.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -64,6 +69,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -208,9 +214,14 @@ def initialize(request_client:) # @param cursor [String] The pagination cursor value. # @param expand [String] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -226,7 +237,7 @@ def initialize(request_client:) # ) # api.ticketing.contacts.list def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -245,6 +256,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, expand: nil, incl "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/field_mapping/client.rb b/lib/merge_ruby_client/ticketing/field_mapping/client.rb index 4e59a20d..8a175400 100644 --- a/lib/merge_ruby_client/ticketing/field_mapping/client.rb +++ b/lib/merge_ruby_client/ticketing/field_mapping/client.rb @@ -23,6 +23,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::FieldMappingApiInstanceResponse] # @example @@ -32,7 +36,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.ticketing.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -42,9 +46,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -57,6 +62,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -82,7 +91,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -92,9 +101,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, @@ -280,6 +290,10 @@ def initialize(request_client:) # between third-party Remote Fields and user defined Merge fields. [Learn # more](https://docs.merge.dev/supplemental-data/field-mappings/overview/). # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::FieldMappingApiInstanceResponse] # @example @@ -289,7 +303,7 @@ def initialize(request_client:) # api_key: "YOUR_AUTH_TOKEN" # ) # api.ticketing.field_mapping.field_mappings_retrieve - def field_mappings_retrieve(request_options: nil) + def field_mappings_retrieve(exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -300,9 +314,10 @@ def field_mappings_retrieve(request_options: nil) **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end @@ -316,6 +331,10 @@ def field_mappings_retrieve(request_options: nil) # This will cause the next sync for this Linked Account to sync **ALL** data from # start. # + # @param exclude_remote_field_metadata [Boolean] If `true`, remote fields metadata is excluded from each field mapping instance + # (i.e. `remote_fields.remote_key_name` and `remote_fields.schema` will be null). + # This will increase the speed of the request since these fields require some + # calculations. # @param target_field_name [String] The name of the target field you want this remote field to map to. # @param target_field_description [String] The description of the target field you want this remote field to map to. # @param remote_field_traversal_path [Array] The field traversal path of the remote field listed when you hit the GET @@ -341,7 +360,7 @@ def field_mappings_retrieve(request_options: nil) # common_model_name: "ExampleCommonModel" # ) def field_mappings_create(target_field_name:, target_field_description:, remote_field_traversal_path:, - remote_method:, remote_url_path:, common_model_name:, request_options: nil) + remote_method:, remote_url_path:, common_model_name:, exclude_remote_field_metadata: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -352,9 +371,10 @@ def field_mappings_create(target_field_name:, target_field_description:, remote_ **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact - unless request_options.nil? || request_options&.additional_query_parameters.nil? - req.params = { **(request_options&.additional_query_parameters || {}) }.compact - end + req.params = { + **(request_options&.additional_query_parameters || {}), + "exclude_remote_field_metadata": exclude_remote_field_metadata + }.compact req.body = { **(request_options&.additional_body_parameters || {}), target_field_name: target_field_name, diff --git a/lib/merge_ruby_client/ticketing/force_resync/client.rb b/lib/merge_ruby_client/ticketing/force_resync/client.rb index 8a3528e2..06b93346 100644 --- a/lib/merge_ruby_client/ticketing/force_resync/client.rb +++ b/lib/merge_ruby_client/ticketing/force_resync/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # @@ -70,7 +70,7 @@ def initialize(request_client:) # Force re-sync of all models. This is available for all organizations via the # dashboard. Force re-sync is also available programmatically via API for monthly, - # quarterly, and highest sync frequency customers on the Launch, Professional, or + # quarterly, and highest sync frequency customers on the Professional or # Enterprise plans. Doing so will consume a sync credit for the relevant linked # account. # diff --git a/lib/merge_ruby_client/ticketing/link_token/client.rb b/lib/merge_ruby_client/ticketing/link_token/client.rb index fd496b83..1e99fd5e 100644 --- a/lib/merge_ruby_client/ticketing/link_token/client.rb +++ b/lib/merge_ruby_client/ticketing/link_token/client.rb @@ -3,6 +3,7 @@ require_relative "../../../requests" require_relative "../types/categories_enum" require_relative "../types/common_model_scopes_body_request" +require_relative "../types/language_enum" require_relative "../types/link_token" require "async" @@ -48,7 +49,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Ticketing::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::LinkToken] @@ -65,7 +71,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -91,6 +97,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/link-token" @@ -139,7 +146,12 @@ def initialize(request_client:) # @param category_common_model_scopes [Hash{String => Array}] When creating a Link Token, you can set permissions for Common Models that will # apply to the account that is going to be linked. Any model or field not # specified in link token payload will default to existing settings. - # @param language [String] The language code for the language to localize Merge Link to. + # @param language [Merge::Ticketing::LanguageEnum] The following subset of IETF language tags can be used to configure + # localization. + # * `en` - en + # * `de` - de + # @param are_syncs_disabled [Boolean] The boolean that indicates whether initial, periodic, and force syncs will be + # disabled. # @param integration_specific_config [Hash{String => Object}] A JSON object containing integration-specific configuration options. # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::LinkToken] @@ -156,7 +168,7 @@ def initialize(request_client:) # categories: [HRIS, ATS] # ) def create(end_user_email_address:, end_user_organization_name:, end_user_origin_id:, categories:, - integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, integration_specific_config: nil, request_options: nil) + integration: nil, link_expiry_mins: nil, should_create_magic_link_url: nil, hide_admin_magic_link: nil, common_models: nil, category_common_model_scopes: nil, language: nil, are_syncs_disabled: nil, integration_specific_config: nil, request_options: nil) Async do response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -183,6 +195,7 @@ def create(end_user_email_address:, end_user_organization_name:, end_user_origin common_models: common_models, category_common_model_scopes: category_common_model_scopes, language: language, + are_syncs_disabled: are_syncs_disabled, integration_specific_config: integration_specific_config }.compact req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/link-token" diff --git a/lib/merge_ruby_client/ticketing/linked_accounts/client.rb b/lib/merge_ruby_client/ticketing/linked_accounts/client.rb index acf3828b..4ee991bc 100644 --- a/lib/merge_ruby_client/ticketing/linked_accounts/client.rb +++ b/lib/merge_ruby_client/ticketing/linked_accounts/client.rb @@ -47,7 +47,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::PaginatedAccountDetailsAndActionsList] # @example @@ -133,7 +133,7 @@ def initialize(request_client:) # @param is_test_account [String] If included, will only include test linked accounts. If not included, will only # include non-test linked accounts. # @param page_size [Integer] Number of results to return per page. - # @param status [String] Filter by status. Options: `COMPLETE`, `INCOMPLETE`, `RELINK_NEEDED` + # @param status [String] Filter by status. Options: `COMPLETE`, `IDLE`, `INCOMPLETE`, `RELINK_NEEDED` # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::PaginatedAccountDetailsAndActionsList] # @example diff --git a/lib/merge_ruby_client/ticketing/projects/client.rb b/lib/merge_ruby_client/ticketing/projects/client.rb index de47559f..b4a64b68 100644 --- a/lib/merge_ruby_client/ticketing/projects/client.rb +++ b/lib/merge_ruby_client/ticketing/projects/client.rb @@ -25,9 +25,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -43,7 +48,7 @@ def initialize(request_client:) # ) # api.ticketing.projects.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -60,6 +65,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -115,9 +121,14 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ticketing::Projects::ProjectsUsersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::PaginatedUserList] @@ -129,7 +140,7 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) # ) # api.ticketing.projects.users_list(parent_id: "parent_id") def users_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, - page_size: nil, request_options: nil) + include_shell_data: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -145,6 +156,7 @@ def users_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? @@ -171,9 +183,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -189,7 +206,7 @@ def initialize(request_client:) # ) # api.ticketing.projects.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -207,6 +224,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -265,9 +283,14 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) # @param cursor [String] The pagination cursor value. # @param expand [Merge::Ticketing::Projects::ProjectsUsersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::PaginatedUserList] @@ -279,7 +302,7 @@ def retrieve(id:, include_remote_data: nil, request_options: nil) # ) # api.ticketing.projects.users_list(parent_id: "parent_id") def users_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, - page_size: nil, request_options: nil) + include_shell_data: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -296,6 +319,7 @@ def users_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? diff --git a/lib/merge_ruby_client/ticketing/roles/client.rb b/lib/merge_ruby_client/ticketing/roles/client.rb index e64847d7..37a6cccd 100644 --- a/lib/merge_ruby_client/ticketing/roles/client.rb +++ b/lib/merge_ruby_client/ticketing/roles/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ticketing.roles.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ticketing.roles.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/scopes/client.rb b/lib/merge_ruby_client/ticketing/scopes/client.rb index 223e0283..0408a333 100644 --- a/lib/merge_ruby_client/ticketing/scopes/client.rb +++ b/lib/merge_ruby_client/ticketing/scopes/client.rb @@ -19,7 +19,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::CommonModelScopeApi] @@ -53,7 +53,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::CommonModelScopeApi] @@ -87,14 +87,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Ticketing::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::CommonModelScopeApi] # @example @@ -103,7 +103,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.ticketing.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.ticketing.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) response = @request_client.conn.post do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -136,7 +136,7 @@ def initialize(request_client:) # Get the default permissions for Merge Common Models and fields across all Linked # Accounts of a given category. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::CommonModelScopeApi] @@ -172,7 +172,7 @@ def default_scopes_retrieve(request_options: nil) # Get all available permissions for Merge Common Models and fields for a single # Linked Account. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes). + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes). # # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::CommonModelScopeApi] @@ -208,14 +208,14 @@ def linked_account_scopes_retrieve(request_options: nil) # Update permissions for any Common Model or field for a single Linked Account. # Any Scopes not set in this POST request will inherit the default Scopes. [Learn - # more](https://help.merge.dev/en/articles/8828211-common-model-and-field-scopes) + # more](https://help.merge.dev/en/articles/5950052-common-model-and-field-scopes) # # @param common_models [Array] The common models you want to update the scopes forRequest of type Array, as a Hash # * :model_name (String) # * :model_permissions (Hash{String => Merge::Ticketing::ModelPermissionDeserializerRequest}) # * :field_permissions (Hash) - # * :enabled (Array) - # * :disabled (Array) + # * :enabled_fields (Array) + # * :disabled_fields (Array) # @param request_options [Merge::RequestOptions] # @return [Merge::Ticketing::CommonModelScopeApi] # @example @@ -224,7 +224,7 @@ def linked_account_scopes_retrieve(request_options: nil) # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.ticketing.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) + # api.ticketing.scopes.linked_account_scopes_create(common_models: [{ model_name: "Employee", model_permissions: { "READ": { is_enabled: true }, "WRITE": { is_enabled: false } }, field_permissions: { enabled_fields: ["avatar", "home_location"], disabled_fields: ["work_location"] } }, { model_name: "Benefit", model_permissions: { "WRITE": { is_enabled: false } } }]) def linked_account_scopes_create(common_models:, request_options: nil) Async do response = @request_client.conn.post do |req| diff --git a/lib/merge_ruby_client/ticketing/tags/client.rb b/lib/merge_ruby_client/ticketing/tags/client.rb index dae77441..60dfc1c9 100644 --- a/lib/merge_ruby_client/ticketing/tags/client.rb +++ b/lib/merge_ruby_client/ticketing/tags/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ticketing.tags.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ticketing.tags.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/teams/client.rb b/lib/merge_ruby_client/ticketing/teams/client.rb index 02a9309d..d80e1eb6 100644 --- a/lib/merge_ruby_client/ticketing/teams/client.rb +++ b/lib/merge_ruby_client/ticketing/teams/client.rb @@ -23,9 +23,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -41,7 +46,7 @@ def initialize(request_client:) # ) # api.ticketing.teams.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -58,6 +63,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -123,9 +129,14 @@ def initialize(request_client:) # @param created_after [DateTime] If provided, will only return objects created after this datetime. # @param created_before [DateTime] If provided, will only return objects created before this datetime. # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -141,7 +152,7 @@ def initialize(request_client:) # ) # api.ticketing.teams.list def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_data: nil, - include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -159,6 +170,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, include_deleted_d "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/merge_ruby_client/ticketing/tickets/client.rb b/lib/merge_ruby_client/ticketing/tickets/client.rb index 6a968a24..14f01770 100644 --- a/lib/merge_ruby_client/ticketing/tickets/client.rb +++ b/lib/merge_ruby_client/ticketing/tickets/client.rb @@ -6,7 +6,6 @@ require_relative "types/tickets_list_request_priority" require_relative "types/tickets_list_request_remote_fields" require_relative "types/tickets_list_request_show_enum_origins" -require_relative "types/tickets_list_request_status" require_relative "../types/paginated_ticket_list" require_relative "../types/ticket_request" require_relative "../types/ticket_response" @@ -15,8 +14,8 @@ require_relative "types/tickets_retrieve_request_show_enum_origins" require_relative "../types/ticket" require_relative "../types/patched_ticket_request" -require_relative "types/tickets_collaborators_list_request_expand" -require_relative "../types/paginated_user_list" +require_relative "types/tickets_viewers_list_request_expand" +require_relative "../types/paginated_viewer_list" require_relative "../types/meta_response" require_relative "../types/paginated_remote_field_class_list" require "async" @@ -50,11 +49,16 @@ def initialize(request_client:) # @param due_before [DateTime] If provided, will only return tickets due before this datetime. # @param expand [Merge::Ticketing::Tickets::TicketsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -78,11 +82,7 @@ def initialize(request_client:) # @param show_enum_origins [Merge::Ticketing::Tickets::TicketsListRequestShowEnumOrigins] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) - # @param status [Merge::Ticketing::Tickets::TicketsListRequestStatus] If provided, will only return tickets of this status. - # - `OPEN` - OPEN - # - `CLOSED` - CLOSED - # - `IN_PROGRESS` - IN_PROGRESS - # - `ON_HOLD` - ON_HOLD + # @param status [String] If provided, will only return tickets of this status. # @param tags [String] If provided, will only return tickets matching the tags; multiple tags can be # separated by commas. # @param ticket_type [String] If provided, will only return tickets of this type. @@ -98,7 +98,7 @@ def initialize(request_client:) # ) # api.ticketing.tickets.list def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_after: nil, completed_before: nil, - contact_id: nil, created_after: nil, created_before: nil, cursor: nil, due_after: nil, due_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_ticket_id: nil, priority: nil, remote_created_after: nil, remote_created_before: nil, remote_fields: nil, remote_id: nil, remote_updated_after: nil, remote_updated_before: nil, show_enum_origins: nil, status: nil, tags: nil, ticket_type: nil, ticket_url: nil, request_options: nil) + contact_id: nil, created_after: nil, created_before: nil, cursor: nil, due_after: nil, due_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_ticket_id: nil, priority: nil, remote_created_after: nil, remote_created_before: nil, remote_fields: nil, remote_id: nil, remote_updated_after: nil, remote_updated_before: nil, show_enum_origins: nil, status: nil, tags: nil, ticket_type: nil, ticket_url: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -125,6 +125,7 @@ def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_afte "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -157,6 +158,7 @@ def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_afte # @param model [Hash] Request of type Merge::Ticketing::TicketRequest, as a Hash # * :name (String) # * :assignees (Array) + # * :assigned_teams (Array) # * :creator (Hash) # * :due_date (DateTime) # * :status (Merge::Ticketing::TicketStatusEnum) @@ -168,6 +170,7 @@ def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_afte # * :parent_ticket (Hash) # * :attachments (Array) # * :tags (Array) + # * :roles (Array) # * :completed_at (DateTime) # * :ticket_url (String) # * :priority (Merge::Ticketing::PriorityEnum) @@ -261,6 +264,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: # @param model [Hash] Request of type Merge::Ticketing::PatchedTicketRequest, as a Hash # * :name (String) # * :assignees (Array) + # * :assigned_teams (Array) # * :creator (String) # * :due_date (DateTime) # * :status (Merge::Ticketing::TicketStatusEnum) @@ -271,6 +275,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: # * :contact (String) # * :parent_ticket (String) # * :tags (Array) + # * :roles (Array) # * :completed_at (DateTime) # * :ticket_url (String) # * :priority (Merge::Ticketing::PriorityEnum) @@ -307,27 +312,32 @@ def partial_update(id:, model:, is_debug_mode: nil, run_async: nil, request_opti Merge::Ticketing::TicketResponse.from_json(json_object: response.body) end - # Returns a list of `User` objects. + # Returns a list of `Viewer` objects. # - # @param parent_id [String] + # @param ticket_id [String] # @param cursor [String] The pagination cursor value. - # @param expand [Merge::Ticketing::Tickets::TicketsCollaboratorsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names + # @param expand [Merge::Ticketing::Tickets::TicketsViewersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] - # @return [Merge::Ticketing::PaginatedUserList] + # @return [Merge::Ticketing::PaginatedViewerList] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.ticketing.tickets.collaborators_list(parent_id: "parent_id") - def collaborators_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, - page_size: nil, request_options: nil) + # api.ticketing.tickets.viewers_list(ticket_id: "ticket_id") + def viewers_list(ticket_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -343,14 +353,15 @@ def collaborators_list(parent_id:, cursor: nil, expand: nil, include_deleted_dat "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end - req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/tickets/#{parent_id}/collaborators" + req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/tickets/#{ticket_id}/viewers" end - Merge::Ticketing::PaginatedUserList.from_json(json_object: response.body) + Merge::Ticketing::PaginatedViewerList.from_json(json_object: response.body) end # Returns metadata for `Ticket` PATCHs. @@ -421,9 +432,14 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -437,7 +453,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.ticketing.tickets.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - is_common_model_field: nil, page_size: nil, request_options: nil) + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -452,6 +468,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact @@ -491,11 +508,16 @@ def initialize(request_client:) # @param due_before [DateTime] If provided, will only return tickets due before this datetime. # @param expand [Merge::Ticketing::Tickets::TicketsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. # @param include_remote_fields [Boolean] Whether to include all remote fields, including fields that Merge did not map to # common models, in a normalized format. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -519,11 +541,7 @@ def initialize(request_client:) # @param show_enum_origins [Merge::Ticketing::Tickets::TicketsListRequestShowEnumOrigins] A comma separated list of enum field names for which you'd like the original # values to be returned, instead of Merge's normalized enum values. [Learn # e](https://help.merge.dev/en/articles/8950958-show_enum_origins-query-parameter) - # @param status [Merge::Ticketing::Tickets::TicketsListRequestStatus] If provided, will only return tickets of this status. - # - `OPEN` - OPEN - # - `CLOSED` - CLOSED - # - `IN_PROGRESS` - IN_PROGRESS - # - `ON_HOLD` - ON_HOLD + # @param status [String] If provided, will only return tickets of this status. # @param tags [String] If provided, will only return tickets matching the tags; multiple tags can be # separated by commas. # @param ticket_type [String] If provided, will only return tickets of this type. @@ -539,7 +557,7 @@ def initialize(request_client:) # ) # api.ticketing.tickets.list def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_after: nil, completed_before: nil, - contact_id: nil, created_after: nil, created_before: nil, cursor: nil, due_after: nil, due_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_ticket_id: nil, priority: nil, remote_created_after: nil, remote_created_before: nil, remote_fields: nil, remote_id: nil, remote_updated_after: nil, remote_updated_before: nil, show_enum_origins: nil, status: nil, tags: nil, ticket_type: nil, ticket_url: nil, request_options: nil) + contact_id: nil, created_after: nil, created_before: nil, cursor: nil, due_after: nil, due_before: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, include_remote_fields: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, parent_ticket_id: nil, priority: nil, remote_created_after: nil, remote_created_before: nil, remote_fields: nil, remote_id: nil, remote_updated_after: nil, remote_updated_before: nil, show_enum_origins: nil, status: nil, tags: nil, ticket_type: nil, ticket_url: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -567,6 +585,7 @@ def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_afte "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, "include_remote_fields": include_remote_fields, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -600,6 +619,7 @@ def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_afte # @param model [Hash] Request of type Merge::Ticketing::TicketRequest, as a Hash # * :name (String) # * :assignees (Array) + # * :assigned_teams (Array) # * :creator (Hash) # * :due_date (DateTime) # * :status (Merge::Ticketing::TicketStatusEnum) @@ -611,6 +631,7 @@ def list(account_id: nil, assignee_ids: nil, collection_ids: nil, completed_afte # * :parent_ticket (Hash) # * :attachments (Array) # * :tags (Array) + # * :roles (Array) # * :completed_at (DateTime) # * :ticket_url (String) # * :priority (Merge::Ticketing::PriorityEnum) @@ -708,6 +729,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: # @param model [Hash] Request of type Merge::Ticketing::PatchedTicketRequest, as a Hash # * :name (String) # * :assignees (Array) + # * :assigned_teams (Array) # * :creator (String) # * :due_date (DateTime) # * :status (Merge::Ticketing::TicketStatusEnum) @@ -718,6 +740,7 @@ def retrieve(id:, expand: nil, include_remote_data: nil, include_remote_fields: # * :contact (String) # * :parent_ticket (String) # * :tags (Array) + # * :roles (Array) # * :completed_at (DateTime) # * :ticket_url (String) # * :priority (Merge::Ticketing::PriorityEnum) @@ -756,27 +779,32 @@ def partial_update(id:, model:, is_debug_mode: nil, run_async: nil, request_opti end end - # Returns a list of `User` objects. + # Returns a list of `Viewer` objects. # - # @param parent_id [String] + # @param ticket_id [String] # @param cursor [String] The pagination cursor value. - # @param expand [Merge::Ticketing::Tickets::TicketsCollaboratorsListRequestExpand] Which relations should be returned in expanded form. Multiple relation names + # @param expand [Merge::Ticketing::Tickets::TicketsViewersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param page_size [Integer] Number of results to return per page. # @param request_options [Merge::RequestOptions] - # @return [Merge::Ticketing::PaginatedUserList] + # @return [Merge::Ticketing::PaginatedViewerList] # @example # api = Merge::Client.new( # base_url: "https://api.example.com", # environment: Merge::Environment::PRODUCTION, # api_key: "YOUR_AUTH_TOKEN" # ) - # api.ticketing.tickets.collaborators_list(parent_id: "parent_id") - def collaborators_list(parent_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, - page_size: nil, request_options: nil) + # api.ticketing.tickets.viewers_list(ticket_id: "ticket_id") + def viewers_list(ticket_id:, cursor: nil, expand: nil, include_deleted_data: nil, include_remote_data: nil, + include_shell_data: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -793,14 +821,15 @@ def collaborators_list(parent_id:, cursor: nil, expand: nil, include_deleted_dat "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "page_size": page_size }.compact unless request_options.nil? || request_options&.additional_body_parameters.nil? req.body = { **(request_options&.additional_body_parameters || {}) }.compact end - req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/tickets/#{parent_id}/collaborators" + req.url "#{@request_client.get_url(request_options: request_options)}/ticketing/v1/tickets/#{ticket_id}/viewers" end - Merge::Ticketing::PaginatedUserList.from_json(json_object: response.body) + Merge::Ticketing::PaginatedViewerList.from_json(json_object: response.body) end end @@ -876,9 +905,14 @@ def meta_post_retrieve(request_options: nil) # Returns a list of `RemoteFieldClass` objects. # # @param cursor [String] The pagination cursor value. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param is_common_model_field [Boolean] If provided, will only return remote field classes with this # is_common_model_field value # @param page_size [Integer] Number of results to return per page. @@ -892,7 +926,7 @@ def meta_post_retrieve(request_options: nil) # ) # api.ticketing.tickets.remote_field_classes_list def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_remote_data: nil, - is_common_model_field: nil, page_size: nil, request_options: nil) + include_shell_data: nil, is_common_model_field: nil, page_size: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -908,6 +942,7 @@ def remote_field_classes_list(cursor: nil, include_deleted_data: nil, include_re "cursor": cursor, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "is_common_model_field": is_common_model_field, "page_size": page_size }.compact diff --git a/lib/merge_ruby_client/ticketing/tickets/types/tickets_collaborators_list_request_expand.rb b/lib/merge_ruby_client/ticketing/tickets/types/tickets_collaborators_list_request_expand.rb deleted file mode 100644 index 46dbcd5d..00000000 --- a/lib/merge_ruby_client/ticketing/tickets/types/tickets_collaborators_list_request_expand.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -module Merge - module Ticketing - class Tickets - class TicketsCollaboratorsListRequestExpand - ROLES = "roles" - TEAMS = "teams" - TEAMS_ROLES = "teams,roles" - end - end - end -end diff --git a/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_expand.rb b/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_expand.rb index 3f641a1a..132d668a 100644 --- a/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_expand.rb +++ b/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_expand.rb @@ -12,6 +12,22 @@ class TicketsListRequestExpand ACCOUNT_CREATOR = "account,creator" ACCOUNT_CREATOR_PARENT_TICKET = "account,creator,parent_ticket" ACCOUNT_PARENT_TICKET = "account,parent_ticket" + ASSIGNED_TEAMS = "assigned_teams" + ASSIGNED_TEAMS_ACCOUNT = "assigned_teams,account" + ASSIGNED_TEAMS_ACCOUNT_CONTACT = "assigned_teams,account,contact" + ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "assigned_teams,account,contact,creator" + ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "assigned_teams,account,contact,creator,parent_ticket" + ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "assigned_teams,account,contact,parent_ticket" + ASSIGNED_TEAMS_ACCOUNT_CREATOR = "assigned_teams,account,creator" + ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "assigned_teams,account,creator,parent_ticket" + ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "assigned_teams,account,parent_ticket" + ASSIGNED_TEAMS_CONTACT = "assigned_teams,contact" + ASSIGNED_TEAMS_CONTACT_CREATOR = "assigned_teams,contact,creator" + ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "assigned_teams,contact,creator,parent_ticket" + ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "assigned_teams,contact,parent_ticket" + ASSIGNED_TEAMS_CREATOR = "assigned_teams,creator" + ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "assigned_teams,creator,parent_ticket" + ASSIGNED_TEAMS_PARENT_TICKET = "assigned_teams,parent_ticket" ASSIGNEES = "assignees" ASSIGNEES_ACCOUNT = "assignees,account" ASSIGNEES_ACCOUNT_CONTACT = "assignees,account,contact" @@ -21,6 +37,22 @@ class TicketsListRequestExpand ASSIGNEES_ACCOUNT_CREATOR = "assignees,account,creator" ASSIGNEES_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,account,creator,parent_ticket" ASSIGNEES_ACCOUNT_PARENT_TICKET = "assignees,account,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS = "assignees,assigned_teams" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT = "assignees,assigned_teams,account" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "assignees,assigned_teams,account,contact" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "assignees,assigned_teams,account,contact,creator" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "assignees,assigned_teams,account,contact,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "assignees,assigned_teams,account,contact,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "assignees,assigned_teams,account,creator" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,assigned_teams,account,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "assignees,assigned_teams,account,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT = "assignees,assigned_teams,contact" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR = "assignees,assigned_teams,contact,creator" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "assignees,assigned_teams,contact,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "assignees,assigned_teams,contact,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_CREATOR = "assignees,assigned_teams,creator" + ASSIGNEES_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "assignees,assigned_teams,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_PARENT_TICKET = "assignees,assigned_teams,parent_ticket" ASSIGNEES_COLLECTIONS = "assignees,collections" ASSIGNEES_COLLECTIONS_ACCOUNT = "assignees,collections,account" ASSIGNEES_COLLECTIONS_ACCOUNT_CONTACT = "assignees,collections,account,contact" @@ -30,6 +62,22 @@ class TicketsListRequestExpand ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR = "assignees,collections,account,creator" ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,collections,account,creator,parent_ticket" ASSIGNEES_COLLECTIONS_ACCOUNT_PARENT_TICKET = "assignees,collections,account,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS = "assignees,collections,assigned_teams" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "assignees,collections,assigned_teams,account" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "assignees,collections,assigned_teams,account,contact" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "assignees,collections,assigned_teams,account,contact,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,account,contact,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "assignees,collections,assigned_teams,account,contact,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "assignees,collections,assigned_teams,account,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,account,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "assignees,collections,assigned_teams,account,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "assignees,collections,assigned_teams,contact" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "assignees,collections,assigned_teams,contact,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,contact,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "assignees,collections,assigned_teams,contact,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "assignees,collections,assigned_teams,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "assignees,collections,assigned_teams,parent_ticket" ASSIGNEES_COLLECTIONS_CONTACT = "assignees,collections,contact" ASSIGNEES_COLLECTIONS_CONTACT_CREATOR = "assignees,collections,contact,creator" ASSIGNEES_COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "assignees,collections,contact,creator,parent_ticket" @@ -53,6 +101,22 @@ class TicketsListRequestExpand ATTACHMENTS_ACCOUNT_CREATOR = "attachments,account,creator" ATTACHMENTS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,account,creator,parent_ticket" ATTACHMENTS_ACCOUNT_PARENT_TICKET = "attachments,account,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS = "attachments,assigned_teams" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT = "attachments,assigned_teams,account" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,assigned_teams,account,contact" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,assigned_teams,account,contact,creator" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,assigned_teams,account,creator" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,assigned_teams,account,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT = "attachments,assigned_teams,contact" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,assigned_teams,contact,creator" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,assigned_teams,contact,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_CREATOR = "attachments,assigned_teams,creator" + ATTACHMENTS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,assigned_teams,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,assigned_teams,parent_ticket" ATTACHMENTS_ASSIGNEES = "attachments,assignees" ATTACHMENTS_ASSIGNEES_ACCOUNT = "attachments,assignees,account" ATTACHMENTS_ASSIGNEES_ACCOUNT_CONTACT = "attachments,assignees,account,contact" @@ -62,6 +126,22 @@ class TicketsListRequestExpand ATTACHMENTS_ASSIGNEES_ACCOUNT_CREATOR = "attachments,assignees,account,creator" ATTACHMENTS_ASSIGNEES_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,account,creator,parent_ticket" ATTACHMENTS_ASSIGNEES_ACCOUNT_PARENT_TICKET = "attachments,assignees,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS = "attachments,assignees,assigned_teams" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT = "attachments,assignees,assigned_teams,account" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,assignees,assigned_teams,account,contact" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,assignees,assigned_teams,account,contact,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,assignees,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,assignees,assigned_teams,account,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,assignees,assigned_teams,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT = "attachments,assignees,assigned_teams,contact" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,assignees,assigned_teams,contact,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,assignees,assigned_teams,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CREATOR = "attachments,assignees,assigned_teams,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,assignees,assigned_teams,parent_ticket" ATTACHMENTS_ASSIGNEES_COLLECTIONS = "attachments,assignees,collections" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT = "attachments,assignees,collections,account" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_CONTACT = "attachments,assignees,collections,account,contact" @@ -71,6 +151,22 @@ class TicketsListRequestExpand ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR = "attachments,assignees,collections,account,creator" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,account,creator,parent_ticket" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_PARENT_TICKET = "attachments,assignees,collections,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS = "attachments,assignees,collections,assigned_teams" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "attachments,assignees,collections,assigned_teams,account" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,assignees,collections,assigned_teams,account,contact" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,assignees,collections,assigned_teams,account,contact,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,assignees,collections,assigned_teams,account,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "attachments,assignees,collections,assigned_teams,contact" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,assignees,collections,assigned_teams,contact,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "attachments,assignees,collections,assigned_teams,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,parent_ticket" ATTACHMENTS_ASSIGNEES_COLLECTIONS_CONTACT = "attachments,assignees,collections,contact" ATTACHMENTS_ASSIGNEES_COLLECTIONS_CONTACT_CREATOR = "attachments,assignees,collections,contact,creator" ATTACHMENTS_ASSIGNEES_COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,contact,creator,parent_ticket" @@ -94,6 +190,22 @@ class TicketsListRequestExpand ATTACHMENTS_COLLECTIONS_ACCOUNT_CREATOR = "attachments,collections,account,creator" ATTACHMENTS_COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,collections,account,creator,parent_ticket" ATTACHMENTS_COLLECTIONS_ACCOUNT_PARENT_TICKET = "attachments,collections,account,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS = "attachments,collections,assigned_teams" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "attachments,collections,assigned_teams,account" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,collections,assigned_teams,account,contact" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,collections,assigned_teams,account,contact,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,collections,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,collections,assigned_teams,account,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,collections,assigned_teams,account,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "attachments,collections,assigned_teams,contact" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,collections,assigned_teams,contact,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,collections,assigned_teams,contact,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "attachments,collections,assigned_teams,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,collections,assigned_teams,parent_ticket" ATTACHMENTS_COLLECTIONS_CONTACT = "attachments,collections,contact" ATTACHMENTS_COLLECTIONS_CONTACT_CREATOR = "attachments,collections,contact,creator" ATTACHMENTS_COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "attachments,collections,contact,creator,parent_ticket" @@ -117,6 +229,22 @@ class TicketsListRequestExpand COLLECTIONS_ACCOUNT_CREATOR = "collections,account,creator" COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "collections,account,creator,parent_ticket" COLLECTIONS_ACCOUNT_PARENT_TICKET = "collections,account,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS = "collections,assigned_teams" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "collections,assigned_teams,account" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "collections,assigned_teams,account,contact" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "collections,assigned_teams,account,contact,creator" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "collections,assigned_teams,account,contact,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "collections,assigned_teams,account,contact,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "collections,assigned_teams,account,creator" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "collections,assigned_teams,account,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "collections,assigned_teams,account,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "collections,assigned_teams,contact" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "collections,assigned_teams,contact,creator" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "collections,assigned_teams,contact,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "collections,assigned_teams,contact,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "collections,assigned_teams,creator" + COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "collections,assigned_teams,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "collections,assigned_teams,parent_ticket" COLLECTIONS_CONTACT = "collections,contact" COLLECTIONS_CONTACT_CREATOR = "collections,contact,creator" COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "collections,contact,creator,parent_ticket" diff --git a/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_status.rb b/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_status.rb deleted file mode 100644 index aa4c9085..00000000 --- a/lib/merge_ruby_client/ticketing/tickets/types/tickets_list_request_status.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Merge - module Ticketing - class Tickets - class TicketsListRequestStatus - CLOSED = "CLOSED" - IN_PROGRESS = "IN_PROGRESS" - ON_HOLD = "ON_HOLD" - OPEN = "OPEN" - end - end - end -end diff --git a/lib/merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_expand.rb b/lib/merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_expand.rb index 91657ee9..1080ae61 100644 --- a/lib/merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_expand.rb +++ b/lib/merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_expand.rb @@ -12,6 +12,22 @@ class TicketsRetrieveRequestExpand ACCOUNT_CREATOR = "account,creator" ACCOUNT_CREATOR_PARENT_TICKET = "account,creator,parent_ticket" ACCOUNT_PARENT_TICKET = "account,parent_ticket" + ASSIGNED_TEAMS = "assigned_teams" + ASSIGNED_TEAMS_ACCOUNT = "assigned_teams,account" + ASSIGNED_TEAMS_ACCOUNT_CONTACT = "assigned_teams,account,contact" + ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "assigned_teams,account,contact,creator" + ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "assigned_teams,account,contact,creator,parent_ticket" + ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "assigned_teams,account,contact,parent_ticket" + ASSIGNED_TEAMS_ACCOUNT_CREATOR = "assigned_teams,account,creator" + ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "assigned_teams,account,creator,parent_ticket" + ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "assigned_teams,account,parent_ticket" + ASSIGNED_TEAMS_CONTACT = "assigned_teams,contact" + ASSIGNED_TEAMS_CONTACT_CREATOR = "assigned_teams,contact,creator" + ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "assigned_teams,contact,creator,parent_ticket" + ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "assigned_teams,contact,parent_ticket" + ASSIGNED_TEAMS_CREATOR = "assigned_teams,creator" + ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "assigned_teams,creator,parent_ticket" + ASSIGNED_TEAMS_PARENT_TICKET = "assigned_teams,parent_ticket" ASSIGNEES = "assignees" ASSIGNEES_ACCOUNT = "assignees,account" ASSIGNEES_ACCOUNT_CONTACT = "assignees,account,contact" @@ -21,6 +37,22 @@ class TicketsRetrieveRequestExpand ASSIGNEES_ACCOUNT_CREATOR = "assignees,account,creator" ASSIGNEES_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,account,creator,parent_ticket" ASSIGNEES_ACCOUNT_PARENT_TICKET = "assignees,account,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS = "assignees,assigned_teams" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT = "assignees,assigned_teams,account" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "assignees,assigned_teams,account,contact" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "assignees,assigned_teams,account,contact,creator" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "assignees,assigned_teams,account,contact,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "assignees,assigned_teams,account,contact,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "assignees,assigned_teams,account,creator" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,assigned_teams,account,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "assignees,assigned_teams,account,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT = "assignees,assigned_teams,contact" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR = "assignees,assigned_teams,contact,creator" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "assignees,assigned_teams,contact,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "assignees,assigned_teams,contact,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_CREATOR = "assignees,assigned_teams,creator" + ASSIGNEES_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "assignees,assigned_teams,creator,parent_ticket" + ASSIGNEES_ASSIGNED_TEAMS_PARENT_TICKET = "assignees,assigned_teams,parent_ticket" ASSIGNEES_COLLECTIONS = "assignees,collections" ASSIGNEES_COLLECTIONS_ACCOUNT = "assignees,collections,account" ASSIGNEES_COLLECTIONS_ACCOUNT_CONTACT = "assignees,collections,account,contact" @@ -30,6 +62,22 @@ class TicketsRetrieveRequestExpand ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR = "assignees,collections,account,creator" ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,collections,account,creator,parent_ticket" ASSIGNEES_COLLECTIONS_ACCOUNT_PARENT_TICKET = "assignees,collections,account,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS = "assignees,collections,assigned_teams" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "assignees,collections,assigned_teams,account" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "assignees,collections,assigned_teams,account,contact" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "assignees,collections,assigned_teams,account,contact,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,account,contact,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "assignees,collections,assigned_teams,account,contact,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "assignees,collections,assigned_teams,account,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,account,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "assignees,collections,assigned_teams,account,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "assignees,collections,assigned_teams,contact" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "assignees,collections,assigned_teams,contact,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,contact,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "assignees,collections,assigned_teams,contact,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "assignees,collections,assigned_teams,creator" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "assignees,collections,assigned_teams,creator,parent_ticket" + ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "assignees,collections,assigned_teams,parent_ticket" ASSIGNEES_COLLECTIONS_CONTACT = "assignees,collections,contact" ASSIGNEES_COLLECTIONS_CONTACT_CREATOR = "assignees,collections,contact,creator" ASSIGNEES_COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "assignees,collections,contact,creator,parent_ticket" @@ -53,6 +101,22 @@ class TicketsRetrieveRequestExpand ATTACHMENTS_ACCOUNT_CREATOR = "attachments,account,creator" ATTACHMENTS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,account,creator,parent_ticket" ATTACHMENTS_ACCOUNT_PARENT_TICKET = "attachments,account,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS = "attachments,assigned_teams" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT = "attachments,assigned_teams,account" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,assigned_teams,account,contact" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,assigned_teams,account,contact,creator" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,assigned_teams,account,creator" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,assigned_teams,account,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT = "attachments,assigned_teams,contact" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,assigned_teams,contact,creator" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,assigned_teams,contact,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_CREATOR = "attachments,assigned_teams,creator" + ATTACHMENTS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,assigned_teams,creator,parent_ticket" + ATTACHMENTS_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,assigned_teams,parent_ticket" ATTACHMENTS_ASSIGNEES = "attachments,assignees" ATTACHMENTS_ASSIGNEES_ACCOUNT = "attachments,assignees,account" ATTACHMENTS_ASSIGNEES_ACCOUNT_CONTACT = "attachments,assignees,account,contact" @@ -62,6 +126,22 @@ class TicketsRetrieveRequestExpand ATTACHMENTS_ASSIGNEES_ACCOUNT_CREATOR = "attachments,assignees,account,creator" ATTACHMENTS_ASSIGNEES_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,account,creator,parent_ticket" ATTACHMENTS_ASSIGNEES_ACCOUNT_PARENT_TICKET = "attachments,assignees,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS = "attachments,assignees,assigned_teams" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT = "attachments,assignees,assigned_teams,account" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,assignees,assigned_teams,account,contact" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,assignees,assigned_teams,account,contact,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,assignees,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,assignees,assigned_teams,account,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,assignees,assigned_teams,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT = "attachments,assignees,assigned_teams,contact" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,assignees,assigned_teams,contact,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,assignees,assigned_teams,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CREATOR = "attachments,assignees,assigned_teams,creator" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,assignees,assigned_teams,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,assignees,assigned_teams,parent_ticket" ATTACHMENTS_ASSIGNEES_COLLECTIONS = "attachments,assignees,collections" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT = "attachments,assignees,collections,account" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_CONTACT = "attachments,assignees,collections,account,contact" @@ -71,6 +151,22 @@ class TicketsRetrieveRequestExpand ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR = "attachments,assignees,collections,account,creator" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,account,creator,parent_ticket" ATTACHMENTS_ASSIGNEES_COLLECTIONS_ACCOUNT_PARENT_TICKET = "attachments,assignees,collections,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS = "attachments,assignees,collections,assigned_teams" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "attachments,assignees,collections,assigned_teams,account" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,assignees,collections,assigned_teams,account,contact" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,assignees,collections,assigned_teams,account,contact,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,assignees,collections,assigned_teams,account,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,account,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "attachments,assignees,collections,assigned_teams,contact" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,assignees,collections,assigned_teams,contact,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,contact,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "attachments,assignees,collections,assigned_teams,creator" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,creator,parent_ticket" + ATTACHMENTS_ASSIGNEES_COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,assignees,collections,assigned_teams,parent_ticket" ATTACHMENTS_ASSIGNEES_COLLECTIONS_CONTACT = "attachments,assignees,collections,contact" ATTACHMENTS_ASSIGNEES_COLLECTIONS_CONTACT_CREATOR = "attachments,assignees,collections,contact,creator" ATTACHMENTS_ASSIGNEES_COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "attachments,assignees,collections,contact,creator,parent_ticket" @@ -94,6 +190,22 @@ class TicketsRetrieveRequestExpand ATTACHMENTS_COLLECTIONS_ACCOUNT_CREATOR = "attachments,collections,account,creator" ATTACHMENTS_COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,collections,account,creator,parent_ticket" ATTACHMENTS_COLLECTIONS_ACCOUNT_PARENT_TICKET = "attachments,collections,account,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS = "attachments,collections,assigned_teams" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "attachments,collections,assigned_teams,account" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "attachments,collections,assigned_teams,account,contact" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "attachments,collections,assigned_teams,account,contact,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,account,contact,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "attachments,collections,assigned_teams,account,contact,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "attachments,collections,assigned_teams,account,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,account,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "attachments,collections,assigned_teams,account,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "attachments,collections,assigned_teams,contact" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "attachments,collections,assigned_teams,contact,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,contact,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "attachments,collections,assigned_teams,contact,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "attachments,collections,assigned_teams,creator" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "attachments,collections,assigned_teams,creator,parent_ticket" + ATTACHMENTS_COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "attachments,collections,assigned_teams,parent_ticket" ATTACHMENTS_COLLECTIONS_CONTACT = "attachments,collections,contact" ATTACHMENTS_COLLECTIONS_CONTACT_CREATOR = "attachments,collections,contact,creator" ATTACHMENTS_COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "attachments,collections,contact,creator,parent_ticket" @@ -117,6 +229,22 @@ class TicketsRetrieveRequestExpand COLLECTIONS_ACCOUNT_CREATOR = "collections,account,creator" COLLECTIONS_ACCOUNT_CREATOR_PARENT_TICKET = "collections,account,creator,parent_ticket" COLLECTIONS_ACCOUNT_PARENT_TICKET = "collections,account,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS = "collections,assigned_teams" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT = "collections,assigned_teams,account" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT = "collections,assigned_teams,account,contact" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR = "collections,assigned_teams,account,contact,creator" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_CREATOR_PARENT_TICKET = "collections,assigned_teams,account,contact,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CONTACT_PARENT_TICKET = "collections,assigned_teams,account,contact,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR = "collections,assigned_teams,account,creator" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_CREATOR_PARENT_TICKET = "collections,assigned_teams,account,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_ACCOUNT_PARENT_TICKET = "collections,assigned_teams,account,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT = "collections,assigned_teams,contact" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR = "collections,assigned_teams,contact,creator" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT_CREATOR_PARENT_TICKET = "collections,assigned_teams,contact,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_CONTACT_PARENT_TICKET = "collections,assigned_teams,contact,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_CREATOR = "collections,assigned_teams,creator" + COLLECTIONS_ASSIGNED_TEAMS_CREATOR_PARENT_TICKET = "collections,assigned_teams,creator,parent_ticket" + COLLECTIONS_ASSIGNED_TEAMS_PARENT_TICKET = "collections,assigned_teams,parent_ticket" COLLECTIONS_CONTACT = "collections,contact" COLLECTIONS_CONTACT_CREATOR = "collections,contact,creator" COLLECTIONS_CONTACT_CREATOR_PARENT_TICKET = "collections,contact,creator,parent_ticket" diff --git a/lib/merge_ruby_client/ticketing/tickets/types/tickets_viewers_list_request_expand.rb b/lib/merge_ruby_client/ticketing/tickets/types/tickets_viewers_list_request_expand.rb new file mode 100644 index 00000000..87154416 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/tickets/types/tickets_viewers_list_request_expand.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Merge + module Ticketing + class Tickets + class TicketsViewersListRequestExpand + TEAM = "team" + USER = "user" + USER_TEAM = "user,team" + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/account.rb b/lib/merge_ruby_client/ticketing/types/account.rb index 5c082d14..d94a9414 100644 --- a/lib/merge_ruby_client/ticketing/types/account.rb +++ b/lib/merge_ruby_client/ticketing/types/account.rb @@ -29,7 +29,9 @@ class Account # @return [Array] The account's domain names. attr_reader :domains # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -50,7 +52,9 @@ class Account # @param name [String] The account's name. # @param domains [Array] The account's domain names. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/account_details.rb b/lib/merge_ruby_client/ticketing/types/account_details.rb index 8c187a3c..7c562756 100644 --- a/lib/merge_ruby_client/ticketing/types/account_details.rb +++ b/lib/merge_ruby_client/ticketing/types/account_details.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "category_enum" +require "date" require "ostruct" require "json" @@ -32,6 +33,8 @@ class AccountDetails attr_reader :is_duplicate # @return [String] attr_reader :account_type + # @return [DateTime] The time at which account completes the linking flow. + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -54,10 +57,11 @@ class AccountDetails # incomplete Production Linked Accounts, and ignored duplicate Production Linked # Account sets. # @param account_type [String] + # @param completed_at [DateTime] The time at which account completes the linking flow. # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::AccountDetails] def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OMIT, end_user_origin_id: OMIT, - end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, additional_properties: nil) + end_user_organization_name: OMIT, end_user_email_address: OMIT, status: OMIT, webhook_listener_url: OMIT, is_duplicate: OMIT, account_type: OMIT, completed_at: OMIT, additional_properties: nil) @id = id if id != OMIT @integration = integration if integration != OMIT @integration_slug = integration_slug if integration_slug != OMIT @@ -69,6 +73,7 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM @webhook_listener_url = webhook_listener_url if webhook_listener_url != OMIT @is_duplicate = is_duplicate if is_duplicate != OMIT @account_type = account_type if account_type != OMIT + @completed_at = completed_at if completed_at != OMIT @additional_properties = additional_properties @_field_set = { "id": id, @@ -81,7 +86,8 @@ def initialize(id: OMIT, integration: OMIT, integration_slug: OMIT, category: OM "status": status, "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -105,6 +111,7 @@ def self.from_json(json_object:) webhook_listener_url = parsed_json["webhook_listener_url"] is_duplicate = parsed_json["is_duplicate"] account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, integration: integration, @@ -117,6 +124,7 @@ def self.from_json(json_object:) webhook_listener_url: webhook_listener_url, is_duplicate: is_duplicate, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -146,6 +154,7 @@ def self.validate_raw(obj:) obj.webhook_listener_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_listener_url is not the expected type, validation failed.") obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.account_type&.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb b/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb index 00babfa6..3bef3db6 100644 --- a/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb +++ b/lib/merge_ruby_client/ticketing/types/account_details_and_actions.rb @@ -3,6 +3,7 @@ require_relative "category_enum" require_relative "account_details_and_actions_status_enum" require_relative "account_details_and_actions_integration" +require "date" require "ostruct" require "json" @@ -42,6 +43,8 @@ class AccountDetailsAndActions attr_reader :integration # @return [String] attr_reader :account_type + # @return [DateTime] + attr_reader :completed_at # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -65,10 +68,11 @@ class AccountDetailsAndActions # Account sets. # @param integration [Merge::Ticketing::AccountDetailsAndActionsIntegration] # @param account_type [String] + # @param completed_at [DateTime] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::AccountDetailsAndActions] def initialize(id:, status:, end_user_organization_name:, end_user_email_address:, webhook_listener_url:, - account_type:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) + account_type:, completed_at:, category: OMIT, status_detail: OMIT, end_user_origin_id: OMIT, subdomain: OMIT, is_duplicate: OMIT, integration: OMIT, additional_properties: nil) @id = id @category = category if category != OMIT @status = status @@ -81,6 +85,7 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address @is_duplicate = is_duplicate if is_duplicate != OMIT @integration = integration if integration != OMIT @account_type = account_type + @completed_at = completed_at @additional_properties = additional_properties @_field_set = { "id": id, @@ -94,7 +99,8 @@ def initialize(id:, status:, end_user_organization_name:, end_user_email_address "webhook_listener_url": webhook_listener_url, "is_duplicate": is_duplicate, "integration": integration, - "account_type": account_type + "account_type": account_type, + "completed_at": completed_at }.reject do |_k, v| v == OMIT end @@ -124,6 +130,7 @@ def self.from_json(json_object:) integration = Merge::Ticketing::AccountDetailsAndActionsIntegration.from_json(json_object: integration) end account_type = parsed_json["account_type"] + completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) new( id: id, category: category, @@ -137,6 +144,7 @@ def self.from_json(json_object:) is_duplicate: is_duplicate, integration: integration, account_type: account_type, + completed_at: completed_at, additional_properties: struct ) end @@ -167,6 +175,7 @@ def self.validate_raw(obj:) obj.is_duplicate&.is_a?(Boolean) != false || raise("Passed value for field obj.is_duplicate is not the expected type, validation failed.") obj.integration.nil? || Merge::Ticketing::AccountDetailsAndActionsIntegration.validate_raw(obj: obj.integration) obj.account_type.is_a?(String) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.") + obj.completed_at.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ticketing/types/account_details_and_actions_status_enum.rb b/lib/merge_ruby_client/ticketing/types/account_details_and_actions_status_enum.rb index 2a16c041..216491ed 100644 --- a/lib/merge_ruby_client/ticketing/types/account_details_and_actions_status_enum.rb +++ b/lib/merge_ruby_client/ticketing/types/account_details_and_actions_status_enum.rb @@ -5,10 +5,12 @@ module Ticketing # - `COMPLETE` - COMPLETE # - `INCOMPLETE` - INCOMPLETE # - `RELINK_NEEDED` - RELINK_NEEDED + # - `IDLE` - IDLE class AccountDetailsAndActionsStatusEnum COMPLETE = "COMPLETE" INCOMPLETE = "INCOMPLETE" RELINK_NEEDED = "RELINK_NEEDED" + IDLE = "IDLE" end end end diff --git a/lib/merge_ruby_client/ticketing/types/account_integration.rb b/lib/merge_ruby_client/ticketing/types/account_integration.rb index fc466d70..67cd9314 100644 --- a/lib/merge_ruby_client/ticketing/types/account_integration.rb +++ b/lib/merge_ruby_client/ticketing/types/account_integration.rb @@ -17,10 +17,9 @@ class AccountIntegration # @return [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. attr_reader :categories - # @return [String] Company logo in rectangular shape. Upload an image with a clear - # background. + # @return [String] Company logo in rectangular shape. attr_reader :image - # @return [String] Company logo in square shape. Upload an image with a white background. + # @return [String] Company logo in square shape. attr_reader :square_image # @return [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. @@ -52,9 +51,8 @@ class AccountIntegration # SuccessFactors) # @param categories [Array] Category or categories this integration belongs to. Multiple categories should # be comma separated, i.e. [ats, hris]. - # @param image [String] Company logo in rectangular shape. Upload an image with a clear - # background. - # @param square_image [String] Company logo in square shape. Upload an image with a white background. + # @param image [String] Company logo in rectangular shape. + # @param square_image [String] Company logo in square shape. # @param color [String] The color of this integration used for buttons and text throughout the app and # landing pages. Choose a darker, saturated color. # @param slug [String] diff --git a/lib/merge_ruby_client/ticketing/types/attachment.rb b/lib/merge_ruby_client/ticketing/types/attachment.rb index 151bb016..c147d179 100644 --- a/lib/merge_ruby_client/ticketing/types/attachment.rb +++ b/lib/merge_ruby_client/ticketing/types/attachment.rb @@ -36,7 +36,10 @@ class Attachment attr_reader :uploaded_by # @return [DateTime] When the third party's attachment was created. attr_reader :remote_created_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -62,7 +65,10 @@ class Attachment # @param content_type [String] The attachment's file format. # @param uploaded_by [String] The user who uploaded the attachment. # @param remote_created_at [DateTime] When the third party's attachment was created. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/audit_log_event.rb b/lib/merge_ruby_client/ticketing/types/audit_log_event.rb index ea51b17f..ab04fa43 100644 --- a/lib/merge_ruby_client/ticketing/types/audit_log_event.rb +++ b/lib/merge_ruby_client/ticketing/types/audit_log_event.rb @@ -65,6 +65,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -136,6 +142,12 @@ class AuditLogEvent # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK diff --git a/lib/merge_ruby_client/ticketing/types/collection.rb b/lib/merge_ruby_client/ticketing/types/collection.rb index 8dd39a84..a6b4eafb 100644 --- a/lib/merge_ruby_client/ticketing/types/collection.rb +++ b/lib/merge_ruby_client/ticketing/types/collection.rb @@ -3,6 +3,7 @@ require "date" require_relative "collection_type_enum" require_relative "collection_parent_collection" +require_relative "collection_teams_item" require_relative "access_level_enum" require_relative "remote_data" require "ostruct" @@ -12,9 +13,9 @@ module Merge module Ticketing # # The Collection Object # ### Description - # The `Collection` object is used to represent collections of tickets. Collections - # may include other collections as - # sub collections. + # The `Collection` object is used to represent one or more `Tickets`. There can be + # a hierarchy of `Collections`, in which a sub-collection belongs to a + # parent-collection. # ### Usage Example # TODO class Collection @@ -36,8 +37,12 @@ class Collection attr_reader :collection_type # @return [Merge::Ticketing::CollectionParentCollection] The parent collection for this collection. attr_reader :parent_collection + # @return [Array] + attr_reader :teams # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Merge::Ticketing::AccessLevelEnum] The level of access a User has to the Collection and its sub-objects. # - `PRIVATE` - PRIVATE @@ -66,8 +71,11 @@ class Collection # - `LIST` - LIST # - `PROJECT` - PROJECT # @param parent_collection [Merge::Ticketing::CollectionParentCollection] The parent collection for this collection. + # @param teams [Array] # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param access_level [Merge::Ticketing::AccessLevelEnum] The level of access a User has to the Collection and its sub-objects. # - `PRIVATE` - PRIVATE # - `COMPANY` - COMPANY @@ -77,7 +85,7 @@ class Collection # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::Collection] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, description: OMIT, - collection_type: OMIT, parent_collection: OMIT, remote_was_deleted: OMIT, access_level: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) + collection_type: OMIT, parent_collection: OMIT, teams: OMIT, remote_was_deleted: OMIT, access_level: OMIT, field_mappings: OMIT, remote_data: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @@ -86,6 +94,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @description = description if description != OMIT @collection_type = collection_type if collection_type != OMIT @parent_collection = parent_collection if parent_collection != OMIT + @teams = teams if teams != OMIT @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT @access_level = access_level if access_level != OMIT @field_mappings = field_mappings if field_mappings != OMIT @@ -100,6 +109,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "description": description, "collection_type": collection_type, "parent_collection": parent_collection, + "teams": teams, "remote_was_deleted": remote_was_deleted, "access_level": access_level, "field_mappings": field_mappings, @@ -129,6 +139,10 @@ def self.from_json(json_object:) parent_collection = parsed_json["parent_collection"].to_json parent_collection = Merge::Ticketing::CollectionParentCollection.from_json(json_object: parent_collection) end + teams = parsed_json["teams"]&.map do |item| + item = item.to_json + Merge::Ticketing::CollectionTeamsItem.from_json(json_object: item) + end remote_was_deleted = parsed_json["remote_was_deleted"] access_level = parsed_json["access_level"] field_mappings = parsed_json["field_mappings"] @@ -145,6 +159,7 @@ def self.from_json(json_object:) description: description, collection_type: collection_type, parent_collection: parent_collection, + teams: teams, remote_was_deleted: remote_was_deleted, access_level: access_level, field_mappings: field_mappings, @@ -175,6 +190,7 @@ def self.validate_raw(obj:) obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.") obj.collection_type&.is_a?(Merge::Ticketing::CollectionTypeEnum) != false || raise("Passed value for field obj.collection_type is not the expected type, validation failed.") obj.parent_collection.nil? || Merge::Ticketing::CollectionParentCollection.validate_raw(obj: obj.parent_collection) + obj.teams&.is_a?(Array) != false || raise("Passed value for field obj.teams is not the expected type, validation failed.") obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.") obj.access_level&.is_a?(Merge::Ticketing::AccessLevelEnum) != false || raise("Passed value for field obj.access_level is not the expected type, validation failed.") obj.field_mappings&.is_a?(Hash) != false || raise("Passed value for field obj.field_mappings is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/ticketing/types/collection_teams_item.rb b/lib/merge_ruby_client/ticketing/types/collection_teams_item.rb new file mode 100644 index 00000000..a3253a11 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/collection_teams_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "team" + +module Merge + module Ticketing + class CollectionTeamsItem + # Deserialize a JSON object to an instance of CollectionTeamsItem + # + # @param json_object [String] + # @return [Merge::Ticketing::CollectionTeamsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Ticketing::Team.validate_raw(obj: struct) + return Merge::Ticketing::Team.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Ticketing::Team.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/comment.rb b/lib/merge_ruby_client/ticketing/types/comment.rb index d1991ff2..0f8e38ca 100644 --- a/lib/merge_ruby_client/ticketing/types/comment.rb +++ b/lib/merge_ruby_client/ticketing/types/comment.rb @@ -24,9 +24,13 @@ class Comment attr_reader :created_at # @return [DateTime] The datetime that this object was modified by Merge. attr_reader :modified_at - # @return [Merge::Ticketing::CommentUser] The author of the Comment, if the author is a User. + # @return [Merge::Ticketing::CommentUser] The author of the Comment, if the author is a User. If the third party does not + # support specifying an author, we will append "[Posted on behalf of {name}]" to + # the comment. attr_reader :user - # @return [Merge::Ticketing::CommentContact] The author of the Comment, if the author is a Contact. + # @return [Merge::Ticketing::CommentContact] The author of the Comment, if the author is a Contact.If the third party does + # not support specifying an author, we will append "[Posted on behalf of {name}]" + # to the comment. attr_reader :contact # @return [String] The comment's text body. attr_reader :body @@ -38,7 +42,10 @@ class Comment attr_reader :is_private # @return [DateTime] When the third party's comment was created. attr_reader :remote_created_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -56,14 +63,21 @@ class Comment # @param remote_id [String] The third-party API ID of the matching object. # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. - # @param user [Merge::Ticketing::CommentUser] The author of the Comment, if the author is a User. - # @param contact [Merge::Ticketing::CommentContact] The author of the Comment, if the author is a Contact. + # @param user [Merge::Ticketing::CommentUser] The author of the Comment, if the author is a User. If the third party does not + # support specifying an author, we will append "[Posted on behalf of {name}]" to + # the comment. + # @param contact [Merge::Ticketing::CommentContact] The author of the Comment, if the author is a Contact.If the third party does + # not support specifying an author, we will append "[Posted on behalf of {name}]" + # to the comment. # @param body [String] The comment's text body. # @param html_body [String] The comment's text body formatted as html. # @param ticket [Merge::Ticketing::CommentTicket] The ticket associated with the comment. # @param is_private [Boolean] Whether or not the comment is internal. # @param remote_created_at [DateTime] When the third party's comment was created. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/comment_contact.rb b/lib/merge_ruby_client/ticketing/types/comment_contact.rb index ee959e64..412b1cb3 100644 --- a/lib/merge_ruby_client/ticketing/types/comment_contact.rb +++ b/lib/merge_ruby_client/ticketing/types/comment_contact.rb @@ -5,7 +5,9 @@ module Merge module Ticketing - # The author of the Comment, if the author is a Contact. + # The author of the Comment, if the author is a Contact.If the third party does + # not support specifying an author, we will append "[Posted on behalf of {name}]" + # to the comment. class CommentContact # Deserialize a JSON object to an instance of CommentContact # diff --git a/lib/merge_ruby_client/ticketing/types/comment_request.rb b/lib/merge_ruby_client/ticketing/types/comment_request.rb index 7dce3d03..ef4388bd 100644 --- a/lib/merge_ruby_client/ticketing/types/comment_request.rb +++ b/lib/merge_ruby_client/ticketing/types/comment_request.rb @@ -14,9 +14,13 @@ module Ticketing # ### Usage Example # TODO class CommentRequest - # @return [Merge::Ticketing::CommentRequestUser] The author of the Comment, if the author is a User. + # @return [Merge::Ticketing::CommentRequestUser] The author of the Comment, if the author is a User. If the third party does not + # support specifying an author, we will append "[Posted on behalf of {name}]" to + # the comment. attr_reader :user - # @return [Merge::Ticketing::CommentRequestContact] The author of the Comment, if the author is a Contact. + # @return [Merge::Ticketing::CommentRequestContact] The author of the Comment, if the author is a Contact.If the third party does + # not support specifying an author, we will append "[Posted on behalf of {name}]" + # to the comment. attr_reader :contact # @return [String] The comment's text body. attr_reader :body @@ -38,8 +42,12 @@ class CommentRequest OMIT = Object.new - # @param user [Merge::Ticketing::CommentRequestUser] The author of the Comment, if the author is a User. - # @param contact [Merge::Ticketing::CommentRequestContact] The author of the Comment, if the author is a Contact. + # @param user [Merge::Ticketing::CommentRequestUser] The author of the Comment, if the author is a User. If the third party does not + # support specifying an author, we will append "[Posted on behalf of {name}]" to + # the comment. + # @param contact [Merge::Ticketing::CommentRequestContact] The author of the Comment, if the author is a Contact.If the third party does + # not support specifying an author, we will append "[Posted on behalf of {name}]" + # to the comment. # @param body [String] The comment's text body. # @param html_body [String] The comment's text body formatted as html. # @param ticket [Merge::Ticketing::CommentRequestTicket] The ticket associated with the comment. diff --git a/lib/merge_ruby_client/ticketing/types/comment_request_contact.rb b/lib/merge_ruby_client/ticketing/types/comment_request_contact.rb index b555c666..66c81e2c 100644 --- a/lib/merge_ruby_client/ticketing/types/comment_request_contact.rb +++ b/lib/merge_ruby_client/ticketing/types/comment_request_contact.rb @@ -5,7 +5,9 @@ module Merge module Ticketing - # The author of the Comment, if the author is a Contact. + # The author of the Comment, if the author is a Contact.If the third party does + # not support specifying an author, we will append "[Posted on behalf of {name}]" + # to the comment. class CommentRequestContact # Deserialize a JSON object to an instance of CommentRequestContact # diff --git a/lib/merge_ruby_client/ticketing/types/comment_request_user.rb b/lib/merge_ruby_client/ticketing/types/comment_request_user.rb index 02d0b926..2cfe6255 100644 --- a/lib/merge_ruby_client/ticketing/types/comment_request_user.rb +++ b/lib/merge_ruby_client/ticketing/types/comment_request_user.rb @@ -5,7 +5,9 @@ module Merge module Ticketing - # The author of the Comment, if the author is a User. + # The author of the Comment, if the author is a User. If the third party does not + # support specifying an author, we will append "[Posted on behalf of {name}]" to + # the comment. class CommentRequestUser # Deserialize a JSON object to an instance of CommentRequestUser # diff --git a/lib/merge_ruby_client/ticketing/types/comment_user.rb b/lib/merge_ruby_client/ticketing/types/comment_user.rb index 15b40d0b..040e0900 100644 --- a/lib/merge_ruby_client/ticketing/types/comment_user.rb +++ b/lib/merge_ruby_client/ticketing/types/comment_user.rb @@ -5,7 +5,9 @@ module Merge module Ticketing - # The author of the Comment, if the author is a User. + # The author of the Comment, if the author is a User. If the third party does not + # support specifying an author, we will append "[Posted on behalf of {name}]" to + # the comment. class CommentUser # Deserialize a JSON object to an instance of CommentUser # diff --git a/lib/merge_ruby_client/ticketing/types/contact.rb b/lib/merge_ruby_client/ticketing/types/contact.rb index 48603c33..b089729e 100644 --- a/lib/merge_ruby_client/ticketing/types/contact.rb +++ b/lib/merge_ruby_client/ticketing/types/contact.rb @@ -34,7 +34,9 @@ class Contact # @return [Merge::Ticketing::ContactAccount] The contact's account. attr_reader :account # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -58,7 +60,9 @@ class Contact # @param details [String] The contact's details. # @param account [Merge::Ticketing::ContactAccount] The contact's account. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/event_type_enum.rb b/lib/merge_ruby_client/ticketing/types/event_type_enum.rb index c81c5386..5b4d2862 100644 --- a/lib/merge_ruby_client/ticketing/types/event_type_enum.rb +++ b/lib/merge_ruby_client/ticketing/types/event_type_enum.rb @@ -40,6 +40,12 @@ module Ticketing # - `DELETED_INTEGRATION_WIDE_FIELD_MAPPING` - # DELETED_INTEGRATION_WIDE_FIELD_MAPPING # - `DELETED_LINKED_ACCOUNT_FIELD_MAPPING` - DELETED_LINKED_ACCOUNT_FIELD_MAPPING + # - `CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE + # - `DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE` - + # DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE # - `FORCED_LINKED_ACCOUNT_RESYNC` - FORCED_LINKED_ACCOUNT_RESYNC # - `MUTED_ISSUE` - MUTED_ISSUE # - `GENERATED_MAGIC_LINK` - GENERATED_MAGIC_LINK @@ -79,6 +85,9 @@ class EventTypeEnum CHANGED_LINKED_ACCOUNT_FIELD_MAPPING = "CHANGED_LINKED_ACCOUNT_FIELD_MAPPING" DELETED_INTEGRATION_WIDE_FIELD_MAPPING = "DELETED_INTEGRATION_WIDE_FIELD_MAPPING" DELETED_LINKED_ACCOUNT_FIELD_MAPPING = "DELETED_LINKED_ACCOUNT_FIELD_MAPPING" + CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CREATED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "CHANGED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" + DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE = "DELETED_LINKED_ACCOUNT_COMMON_MODEL_OVERRIDE" FORCED_LINKED_ACCOUNT_RESYNC = "FORCED_LINKED_ACCOUNT_RESYNC" MUTED_ISSUE = "MUTED_ISSUE" GENERATED_MAGIC_LINK = "GENERATED_MAGIC_LINK" diff --git a/lib/merge_ruby_client/ticketing/types/field_mapping_api_instance_remote_field.rb b/lib/merge_ruby_client/ticketing/types/field_mapping_api_instance_remote_field.rb index eaf0e7e8..3fd2abe0 100644 --- a/lib/merge_ruby_client/ticketing/types/field_mapping_api_instance_remote_field.rb +++ b/lib/merge_ruby_client/ticketing/types/field_mapping_api_instance_remote_field.rb @@ -26,16 +26,18 @@ class FieldMappingApiInstanceRemoteField # @param remote_endpoint_info [Merge::Ticketing::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::FieldMappingApiInstanceRemoteField] - def initialize(remote_key_name:, schema:, remote_endpoint_info:, additional_properties: nil) - @remote_key_name = remote_key_name - @schema = schema + def initialize(remote_endpoint_info:, remote_key_name: OMIT, schema: OMIT, additional_properties: nil) + @remote_key_name = remote_key_name if remote_key_name != OMIT + @schema = schema if schema != OMIT @remote_endpoint_info = remote_endpoint_info @additional_properties = additional_properties @_field_set = { "remote_key_name": remote_key_name, "schema": schema, "remote_endpoint_info": remote_endpoint_info - } + }.reject do |_k, v| + v == OMIT + end end # Deserialize a JSON object to an instance of FieldMappingApiInstanceRemoteField @@ -75,8 +77,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.remote_key_name.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") - obj.schema.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") + obj.remote_key_name&.is_a?(String) != false || raise("Passed value for field obj.remote_key_name is not the expected type, validation failed.") + obj.schema&.is_a?(Hash) != false || raise("Passed value for field obj.schema is not the expected type, validation failed.") Merge::Ticketing::FieldMappingApiInstanceRemoteFieldRemoteEndpointInfo.validate_raw(obj: obj.remote_endpoint_info) end end diff --git a/lib/merge_ruby_client/ticketing/types/field_permission_deserializer.rb b/lib/merge_ruby_client/ticketing/types/field_permission_deserializer.rb index 48f83990..f2a5c004 100644 --- a/lib/merge_ruby_client/ticketing/types/field_permission_deserializer.rb +++ b/lib/merge_ruby_client/ticketing/types/field_permission_deserializer.rb @@ -7,9 +7,9 @@ module Merge module Ticketing class FieldPermissionDeserializer # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializer OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::FieldPermissionDeserializer] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ticketing/types/field_permission_deserializer_request.rb b/lib/merge_ruby_client/ticketing/types/field_permission_deserializer_request.rb index ecee9a35..9fa6a02f 100644 --- a/lib/merge_ruby_client/ticketing/types/field_permission_deserializer_request.rb +++ b/lib/merge_ruby_client/ticketing/types/field_permission_deserializer_request.rb @@ -7,9 +7,9 @@ module Merge module Ticketing class FieldPermissionDeserializerRequest # @return [Array] - attr_reader :enabled + attr_reader :enabled_fields # @return [Array] - attr_reader :disabled + attr_reader :disabled_fields # @return [OpenStruct] Additional properties unmapped to the current class definition attr_reader :additional_properties # @return [Object] @@ -18,15 +18,15 @@ class FieldPermissionDeserializerRequest OMIT = Object.new - # @param enabled [Array] - # @param disabled [Array] + # @param enabled_fields [Array] + # @param disabled_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::FieldPermissionDeserializerRequest] - def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) - @enabled = enabled if enabled != OMIT - @disabled = disabled if disabled != OMIT + def initialize(enabled_fields: OMIT, disabled_fields: OMIT, additional_properties: nil) + @enabled_fields = enabled_fields if enabled_fields != OMIT + @disabled_fields = disabled_fields if disabled_fields != OMIT @additional_properties = additional_properties - @_field_set = { "enabled": enabled, "disabled": disabled }.reject do |_k, v| + @_field_set = { "enabled_fields": enabled_fields, "disabled_fields": disabled_fields }.reject do |_k, v| v == OMIT end end @@ -38,11 +38,11 @@ def initialize(enabled: OMIT, disabled: OMIT, additional_properties: nil) def self.from_json(json_object:) struct = JSON.parse(json_object, object_class: OpenStruct) parsed_json = JSON.parse(json_object) - enabled = parsed_json["enabled"] - disabled = parsed_json["disabled"] + enabled_fields = parsed_json["enabled_fields"] + disabled_fields = parsed_json["disabled_fields"] new( - enabled: enabled, - disabled: disabled, + enabled_fields: enabled_fields, + disabled_fields: disabled_fields, additional_properties: struct ) end @@ -61,8 +61,8 @@ def to_json(*_args) # @param obj [Object] # @return [Void] def self.validate_raw(obj:) - obj.enabled&.is_a?(Array) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.") - obj.disabled&.is_a?(Array) != false || raise("Passed value for field obj.disabled is not the expected type, validation failed.") + obj.enabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.enabled_fields is not the expected type, validation failed.") + obj.disabled_fields&.is_a?(Array) != false || raise("Passed value for field obj.disabled_fields is not the expected type, validation failed.") end end end diff --git a/lib/merge_ruby_client/ticketing/types/language_enum.rb b/lib/merge_ruby_client/ticketing/types/language_enum.rb new file mode 100644 index 00000000..c0dae1d8 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/language_enum.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Merge + module Ticketing + # - `en` - en + # - `de` - de + class LanguageEnum + EN = "en" + DE = "de" + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/paginated_viewer_list.rb b/lib/merge_ruby_client/ticketing/types/paginated_viewer_list.rb new file mode 100644 index 00000000..fdc19d70 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/paginated_viewer_list.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require_relative "viewer" +require "ostruct" +require "json" + +module Merge + module Ticketing + class PaginatedViewerList + # @return [String] + attr_reader :next_ + # @return [String] + attr_reader :previous + # @return [Array] + attr_reader :results + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param next_ [String] + # @param previous [String] + # @param results [Array] + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Ticketing::PaginatedViewerList] + def initialize(next_: OMIT, previous: OMIT, results: OMIT, additional_properties: nil) + @next_ = next_ if next_ != OMIT + @previous = previous if previous != OMIT + @results = results if results != OMIT + @additional_properties = additional_properties + @_field_set = { "next": next_, "previous": previous, "results": results }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of PaginatedViewerList + # + # @param json_object [String] + # @return [Merge::Ticketing::PaginatedViewerList] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + next_ = parsed_json["next"] + previous = parsed_json["previous"] + results = parsed_json["results"]&.map do |item| + item = item.to_json + Merge::Ticketing::Viewer.from_json(json_object: item) + end + new( + next_: next_, + previous: previous, + results: results, + additional_properties: struct + ) + end + + # Serialize an instance of PaginatedViewerList to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.next_&.is_a?(String) != false || raise("Passed value for field obj.next_ is not the expected type, validation failed.") + obj.previous&.is_a?(String) != false || raise("Passed value for field obj.previous is not the expected type, validation failed.") + obj.results&.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb b/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb index e0d778e4..c4452ace 100644 --- a/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb +++ b/lib/merge_ruby_client/ticketing/types/patched_ticket_request.rb @@ -11,14 +11,18 @@ module Merge module Ticketing # # The Ticket Object # ### Description - # The `Ticket` object is used to represent a ticket or a task within a system. + # The `Ticket` object is used to represent a ticket, issue, task or case. # ### Usage Example # TODO class PatchedTicketRequest # @return [String] The ticket's name. attr_reader :name - # @return [Array] + # @return [Array] The individual `Users` who are assigned to this ticket. This does not include + # `Users` who just have view access to this ticket. attr_reader :assignees + # @return [Array] The `Teams` that are assigned to this ticket. This does not include `Teams` who + # just have view access to this ticket. + attr_reader :assigned_teams # @return [String] The user who created this ticket. attr_reader :creator # @return [DateTime] The ticket's due date. @@ -32,7 +36,7 @@ class PatchedTicketRequest # @return [String] The ticket’s description. HTML version of description is mapped if supported by # the third-party platform. attr_reader :description - # @return [Array] + # @return [Array] The `Collections` that this `Ticket` is included in. attr_reader :collections # @return [String] The sub category of the ticket within the 3rd party system. Examples include # incident, task, subtask or to-do. @@ -45,6 +49,8 @@ class PatchedTicketRequest attr_reader :parent_ticket # @return [Array] attr_reader :tags + # @return [Array] + attr_reader :roles # @return [DateTime] When the ticket was completed. attr_reader :completed_at # @return [String] The 3rd party url of the Ticket. @@ -70,7 +76,10 @@ class PatchedTicketRequest OMIT = Object.new # @param name [String] The ticket's name. - # @param assignees [Array] + # @param assignees [Array] The individual `Users` who are assigned to this ticket. This does not include + # `Users` who just have view access to this ticket. + # @param assigned_teams [Array] The `Teams` that are assigned to this ticket. This does not include `Teams` who + # just have view access to this ticket. # @param creator [String] The user who created this ticket. # @param due_date [DateTime] The ticket's due date. # @param status [Merge::Ticketing::TicketStatusEnum] The current status of the ticket. @@ -80,13 +89,14 @@ class PatchedTicketRequest # - `ON_HOLD` - ON_HOLD # @param description [String] The ticket’s description. HTML version of description is mapped if supported by # the third-party platform. - # @param collections [Array] + # @param collections [Array] The `Collections` that this `Ticket` is included in. # @param ticket_type [String] The sub category of the ticket within the 3rd party system. Examples include # incident, task, subtask or to-do. # @param account [String] The account associated with the ticket. # @param contact [String] The contact associated with the ticket. # @param parent_ticket [String] The ticket's parent ticket. # @param tags [Array] + # @param roles [Array] # @param completed_at [DateTime] When the ticket was completed. # @param ticket_url [String] The 3rd party url of the Ticket. # @param priority [Merge::Ticketing::PriorityEnum] The priority or urgency of the Ticket. @@ -99,10 +109,11 @@ class PatchedTicketRequest # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::PatchedTicketRequest] - def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, status: OMIT, description: OMIT, - collections: OMIT, ticket_type: OMIT, account: OMIT, contact: OMIT, parent_ticket: OMIT, tags: OMIT, completed_at: OMIT, ticket_url: OMIT, priority: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) + def initialize(name: OMIT, assignees: OMIT, assigned_teams: OMIT, creator: OMIT, due_date: OMIT, status: OMIT, + description: OMIT, collections: OMIT, ticket_type: OMIT, account: OMIT, contact: OMIT, parent_ticket: OMIT, tags: OMIT, roles: OMIT, completed_at: OMIT, ticket_url: OMIT, priority: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @name = name if name != OMIT @assignees = assignees if assignees != OMIT + @assigned_teams = assigned_teams if assigned_teams != OMIT @creator = creator if creator != OMIT @due_date = due_date if due_date != OMIT @status = status if status != OMIT @@ -113,6 +124,7 @@ def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, statu @contact = contact if contact != OMIT @parent_ticket = parent_ticket if parent_ticket != OMIT @tags = tags if tags != OMIT + @roles = roles if roles != OMIT @completed_at = completed_at if completed_at != OMIT @ticket_url = ticket_url if ticket_url != OMIT @priority = priority if priority != OMIT @@ -123,6 +135,7 @@ def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, statu @_field_set = { "name": name, "assignees": assignees, + "assigned_teams": assigned_teams, "creator": creator, "due_date": due_date, "status": status, @@ -133,6 +146,7 @@ def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, statu "contact": contact, "parent_ticket": parent_ticket, "tags": tags, + "roles": roles, "completed_at": completed_at, "ticket_url": ticket_url, "priority": priority, @@ -153,6 +167,7 @@ def self.from_json(json_object:) parsed_json = JSON.parse(json_object) name = parsed_json["name"] assignees = parsed_json["assignees"] + assigned_teams = parsed_json["assigned_teams"] creator = parsed_json["creator"] due_date = (DateTime.parse(parsed_json["due_date"]) unless parsed_json["due_date"].nil?) status = parsed_json["status"] @@ -163,6 +178,7 @@ def self.from_json(json_object:) contact = parsed_json["contact"] parent_ticket = parsed_json["parent_ticket"] tags = parsed_json["tags"] + roles = parsed_json["roles"] completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) ticket_url = parsed_json["ticket_url"] priority = parsed_json["priority"] @@ -175,6 +191,7 @@ def self.from_json(json_object:) new( name: name, assignees: assignees, + assigned_teams: assigned_teams, creator: creator, due_date: due_date, status: status, @@ -185,6 +202,7 @@ def self.from_json(json_object:) contact: contact, parent_ticket: parent_ticket, tags: tags, + roles: roles, completed_at: completed_at, ticket_url: ticket_url, priority: priority, @@ -211,6 +229,7 @@ def to_json(*_args) def self.validate_raw(obj:) obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.assignees&.is_a?(Array) != false || raise("Passed value for field obj.assignees is not the expected type, validation failed.") + obj.assigned_teams&.is_a?(Array) != false || raise("Passed value for field obj.assigned_teams is not the expected type, validation failed.") obj.creator&.is_a?(String) != false || raise("Passed value for field obj.creator is not the expected type, validation failed.") obj.due_date&.is_a?(DateTime) != false || raise("Passed value for field obj.due_date is not the expected type, validation failed.") obj.status&.is_a?(Merge::Ticketing::TicketStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") @@ -221,6 +240,7 @@ def self.validate_raw(obj:) obj.contact&.is_a?(String) != false || raise("Passed value for field obj.contact is not the expected type, validation failed.") obj.parent_ticket&.is_a?(String) != false || raise("Passed value for field obj.parent_ticket is not the expected type, validation failed.") obj.tags&.is_a?(Array) != false || raise("Passed value for field obj.tags is not the expected type, validation failed.") + obj.roles&.is_a?(Array) != false || raise("Passed value for field obj.roles is not the expected type, validation failed.") obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") obj.ticket_url&.is_a?(String) != false || raise("Passed value for field obj.ticket_url is not the expected type, validation failed.") obj.priority&.is_a?(Merge::Ticketing::PriorityEnum) != false || raise("Passed value for field obj.priority is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/ticketing/types/project.rb b/lib/merge_ruby_client/ticketing/types/project.rb index 38dd3cde..5800949d 100644 --- a/lib/merge_ruby_client/ticketing/types/project.rb +++ b/lib/merge_ruby_client/ticketing/types/project.rb @@ -27,7 +27,9 @@ class Project # @return [String] The project's description. attr_reader :description # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -48,7 +50,9 @@ class Project # @param name [String] The project's name. # @param description [String] The project's description. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/remote_data.rb b/lib/merge_ruby_client/ticketing/types/remote_data.rb index 6f537692..3c634a34 100644 --- a/lib/merge_ruby_client/ticketing/types/remote_data.rb +++ b/lib/merge_ruby_client/ticketing/types/remote_data.rb @@ -5,8 +5,14 @@ module Merge module Ticketing + # # The RemoteData Object + # ### Description + # The `RemoteData` object is used to represent the full data pulled from the + # third-party API for an object. + # ### Usage Example + # TODO class RemoteData - # @return [String] + # @return [String] The third-party API path that is being called. attr_reader :path # @return [Object] attr_reader :data @@ -18,7 +24,7 @@ class RemoteData OMIT = Object.new - # @param path [String] + # @param path [String] The third-party API path that is being called. # @param data [Object] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::RemoteData] diff --git a/lib/merge_ruby_client/ticketing/types/role.rb b/lib/merge_ruby_client/ticketing/types/role.rb index 211b6b71..d706b6db 100644 --- a/lib/merge_ruby_client/ticketing/types/role.rb +++ b/lib/merge_ruby_client/ticketing/types/role.rb @@ -35,7 +35,9 @@ class Role # - `TEAM_ONLY` - TEAM_ONLY attr_reader :ticket_access # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -61,7 +63,9 @@ class Role # - `ASSIGNED_ONLY` - ASSIGNED_ONLY # - `TEAM_ONLY` - TEAM_ONLY # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/tag.rb b/lib/merge_ruby_client/ticketing/types/tag.rb index d7e682f2..b5ad4a6c 100644 --- a/lib/merge_ruby_client/ticketing/types/tag.rb +++ b/lib/merge_ruby_client/ticketing/types/tag.rb @@ -24,7 +24,9 @@ class Tag # @return [String] The tag's name. attr_reader :name # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -44,7 +46,9 @@ class Tag # @param id [String] # @param name [String] The tag's name. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/team.rb b/lib/merge_ruby_client/ticketing/types/team.rb index d1bb1ab6..db1d6a99 100644 --- a/lib/merge_ruby_client/ticketing/types/team.rb +++ b/lib/merge_ruby_client/ticketing/types/team.rb @@ -9,8 +9,8 @@ module Merge module Ticketing # # The Team Object # ### Description - # The `Team` object is used to represent a team within the company receiving the - # ticket. + # The `Team` object is used to represent one or more `Users` within the company + # receiving the ticket. # ### Usage Example # TODO class Team @@ -27,7 +27,9 @@ class Team # @return [String] The team's description. attr_reader :description # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -48,7 +50,9 @@ class Team # @param name [String] The team's name. # @param description [String] The team's description. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/ticket.rb b/lib/merge_ruby_client/ticketing/types/ticket.rb index ce9b1cfa..4bd878e8 100644 --- a/lib/merge_ruby_client/ticketing/types/ticket.rb +++ b/lib/merge_ruby_client/ticketing/types/ticket.rb @@ -2,6 +2,7 @@ require "date" require_relative "ticket_assignees_item" +require_relative "ticket_assigned_teams_item" require_relative "ticket_creator" require_relative "ticket_status_enum" require_relative "ticket_collections_item" @@ -19,7 +20,7 @@ module Merge module Ticketing # # The Ticket Object # ### Description - # The `Ticket` object is used to represent a ticket or a task within a system. + # The `Ticket` object is used to represent a ticket, issue, task or case. # ### Usage Example # TODO class Ticket @@ -33,8 +34,12 @@ class Ticket attr_reader :modified_at # @return [String] The ticket's name. attr_reader :name - # @return [Array] + # @return [Array] The individual `Users` who are assigned to this ticket. This does not include + # `Users` who just have view access to this ticket. attr_reader :assignees + # @return [Array] The `Teams` that are assigned to this ticket. This does not include `Teams` who + # just have view access to this ticket. + attr_reader :assigned_teams # @return [Merge::Ticketing::TicketCreator] The user who created this ticket. attr_reader :creator # @return [DateTime] The ticket's due date. @@ -48,7 +53,7 @@ class Ticket # @return [String] The ticket’s description. HTML version of description is mapped if supported by # the third-party platform. attr_reader :description - # @return [Array] + # @return [Array] The `Collections` that this `Ticket` is included in. attr_reader :collections # @return [String] The sub category of the ticket within the 3rd party system. Examples include # incident, task, subtask or to-do. @@ -63,13 +68,18 @@ class Ticket attr_reader :attachments # @return [Array] attr_reader :tags + # @return [Array] + attr_reader :roles # @return [DateTime] When the third party's ticket was created. attr_reader :remote_created_at # @return [DateTime] When the third party's ticket was updated. attr_reader :remote_updated_at # @return [DateTime] When the ticket was completed. attr_reader :completed_at - # @return [Boolean] + # @return [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [String] The 3rd party url of the Ticket. attr_reader :ticket_url @@ -98,7 +108,10 @@ class Ticket # @param created_at [DateTime] The datetime that this object was created by Merge. # @param modified_at [DateTime] The datetime that this object was modified by Merge. # @param name [String] The ticket's name. - # @param assignees [Array] + # @param assignees [Array] The individual `Users` who are assigned to this ticket. This does not include + # `Users` who just have view access to this ticket. + # @param assigned_teams [Array] The `Teams` that are assigned to this ticket. This does not include `Teams` who + # just have view access to this ticket. # @param creator [Merge::Ticketing::TicketCreator] The user who created this ticket. # @param due_date [DateTime] The ticket's due date. # @param status [Merge::Ticketing::TicketStatusEnum] The current status of the ticket. @@ -108,7 +121,7 @@ class Ticket # - `ON_HOLD` - ON_HOLD # @param description [String] The ticket’s description. HTML version of description is mapped if supported by # the third-party platform. - # @param collections [Array] + # @param collections [Array] The `Collections` that this `Ticket` is included in. # @param ticket_type [String] The sub category of the ticket within the 3rd party system. Examples include # incident, task, subtask or to-do. # @param account [Merge::Ticketing::TicketAccount] The account associated with the ticket. @@ -116,10 +129,14 @@ class Ticket # @param parent_ticket [Merge::Ticketing::TicketParentTicket] The ticket's parent ticket. # @param attachments [Array] # @param tags [Array] + # @param roles [Array] # @param remote_created_at [DateTime] When the third party's ticket was created. # @param remote_updated_at [DateTime] When the third party's ticket was updated. # @param completed_at [DateTime] When the ticket was completed. - # @param remote_was_deleted [Boolean] + # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param ticket_url [String] The 3rd party url of the Ticket. # @param priority [Merge::Ticketing::PriorityEnum] The priority or urgency of the Ticket. # - `URGENT` - URGENT @@ -132,13 +149,14 @@ class Ticket # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::Ticket] def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, name: OMIT, assignees: OMIT, - creator: OMIT, due_date: OMIT, status: OMIT, description: OMIT, collections: OMIT, ticket_type: OMIT, account: OMIT, contact: OMIT, parent_ticket: OMIT, attachments: OMIT, tags: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, completed_at: OMIT, remote_was_deleted: OMIT, ticket_url: OMIT, priority: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) + assigned_teams: OMIT, creator: OMIT, due_date: OMIT, status: OMIT, description: OMIT, collections: OMIT, ticket_type: OMIT, account: OMIT, contact: OMIT, parent_ticket: OMIT, attachments: OMIT, tags: OMIT, roles: OMIT, remote_created_at: OMIT, remote_updated_at: OMIT, completed_at: OMIT, remote_was_deleted: OMIT, ticket_url: OMIT, priority: OMIT, field_mappings: OMIT, remote_data: OMIT, remote_fields: OMIT, additional_properties: nil) @id = id if id != OMIT @remote_id = remote_id if remote_id != OMIT @created_at = created_at if created_at != OMIT @modified_at = modified_at if modified_at != OMIT @name = name if name != OMIT @assignees = assignees if assignees != OMIT + @assigned_teams = assigned_teams if assigned_teams != OMIT @creator = creator if creator != OMIT @due_date = due_date if due_date != OMIT @status = status if status != OMIT @@ -150,6 +168,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n @parent_ticket = parent_ticket if parent_ticket != OMIT @attachments = attachments if attachments != OMIT @tags = tags if tags != OMIT + @roles = roles if roles != OMIT @remote_created_at = remote_created_at if remote_created_at != OMIT @remote_updated_at = remote_updated_at if remote_updated_at != OMIT @completed_at = completed_at if completed_at != OMIT @@ -167,6 +186,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "modified_at": modified_at, "name": name, "assignees": assignees, + "assigned_teams": assigned_teams, "creator": creator, "due_date": due_date, "status": status, @@ -178,6 +198,7 @@ def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, n "parent_ticket": parent_ticket, "attachments": attachments, "tags": tags, + "roles": roles, "remote_created_at": remote_created_at, "remote_updated_at": remote_updated_at, "completed_at": completed_at, @@ -208,6 +229,10 @@ def self.from_json(json_object:) item = item.to_json Merge::Ticketing::TicketAssigneesItem.from_json(json_object: item) end + assigned_teams = parsed_json["assigned_teams"]&.map do |item| + item = item.to_json + Merge::Ticketing::TicketAssignedTeamsItem.from_json(json_object: item) + end if parsed_json["creator"].nil? creator = nil else @@ -245,6 +270,7 @@ def self.from_json(json_object:) Merge::Ticketing::TicketAttachmentsItem.from_json(json_object: item) end tags = parsed_json["tags"] + roles = parsed_json["roles"] remote_created_at = unless parsed_json["remote_created_at"].nil? DateTime.parse(parsed_json["remote_created_at"]) end @@ -271,6 +297,7 @@ def self.from_json(json_object:) modified_at: modified_at, name: name, assignees: assignees, + assigned_teams: assigned_teams, creator: creator, due_date: due_date, status: status, @@ -282,6 +309,7 @@ def self.from_json(json_object:) parent_ticket: parent_ticket, attachments: attachments, tags: tags, + roles: roles, remote_created_at: remote_created_at, remote_updated_at: remote_updated_at, completed_at: completed_at, @@ -315,6 +343,7 @@ def self.validate_raw(obj:) obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.assignees&.is_a?(Array) != false || raise("Passed value for field obj.assignees is not the expected type, validation failed.") + obj.assigned_teams&.is_a?(Array) != false || raise("Passed value for field obj.assigned_teams is not the expected type, validation failed.") obj.creator.nil? || Merge::Ticketing::TicketCreator.validate_raw(obj: obj.creator) obj.due_date&.is_a?(DateTime) != false || raise("Passed value for field obj.due_date is not the expected type, validation failed.") obj.status&.is_a?(Merge::Ticketing::TicketStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") @@ -326,6 +355,7 @@ def self.validate_raw(obj:) obj.parent_ticket.nil? || Merge::Ticketing::TicketParentTicket.validate_raw(obj: obj.parent_ticket) obj.attachments&.is_a?(Array) != false || raise("Passed value for field obj.attachments is not the expected type, validation failed.") obj.tags&.is_a?(Array) != false || raise("Passed value for field obj.tags is not the expected type, validation failed.") + obj.roles&.is_a?(Array) != false || raise("Passed value for field obj.roles is not the expected type, validation failed.") obj.remote_created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_created_at is not the expected type, validation failed.") obj.remote_updated_at&.is_a?(DateTime) != false || raise("Passed value for field obj.remote_updated_at is not the expected type, validation failed.") obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/ticketing/types/ticket_assigned_teams_item.rb b/lib/merge_ruby_client/ticketing/types/ticket_assigned_teams_item.rb new file mode 100644 index 00000000..4b377757 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/ticket_assigned_teams_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "team" + +module Merge + module Ticketing + class TicketAssignedTeamsItem + # Deserialize a JSON object to an instance of TicketAssignedTeamsItem + # + # @param json_object [String] + # @return [Merge::Ticketing::TicketAssignedTeamsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Ticketing::Team.validate_raw(obj: struct) + return Merge::Ticketing::Team.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Ticketing::Team.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/ticket_request.rb b/lib/merge_ruby_client/ticketing/types/ticket_request.rb index afaa9e90..2b70be08 100644 --- a/lib/merge_ruby_client/ticketing/types/ticket_request.rb +++ b/lib/merge_ruby_client/ticketing/types/ticket_request.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "ticket_request_assignees_item" +require_relative "ticket_request_assigned_teams_item" require_relative "ticket_request_creator" require "date" require_relative "ticket_status_enum" @@ -18,14 +19,18 @@ module Merge module Ticketing # # The Ticket Object # ### Description - # The `Ticket` object is used to represent a ticket or a task within a system. + # The `Ticket` object is used to represent a ticket, issue, task or case. # ### Usage Example # TODO class TicketRequest # @return [String] The ticket's name. attr_reader :name - # @return [Array] + # @return [Array] The individual `Users` who are assigned to this ticket. This does not include + # `Users` who just have view access to this ticket. attr_reader :assignees + # @return [Array] The `Teams` that are assigned to this ticket. This does not include `Teams` who + # just have view access to this ticket. + attr_reader :assigned_teams # @return [Merge::Ticketing::TicketRequestCreator] The user who created this ticket. attr_reader :creator # @return [DateTime] The ticket's due date. @@ -39,7 +44,7 @@ class TicketRequest # @return [String] The ticket’s description. HTML version of description is mapped if supported by # the third-party platform. attr_reader :description - # @return [Array] + # @return [Array] The `Collections` that this `Ticket` is included in. attr_reader :collections # @return [String] The sub category of the ticket within the 3rd party system. Examples include # incident, task, subtask or to-do. @@ -54,6 +59,8 @@ class TicketRequest attr_reader :attachments # @return [Array] attr_reader :tags + # @return [Array] + attr_reader :roles # @return [DateTime] When the ticket was completed. attr_reader :completed_at # @return [String] The 3rd party url of the Ticket. @@ -79,7 +86,10 @@ class TicketRequest OMIT = Object.new # @param name [String] The ticket's name. - # @param assignees [Array] + # @param assignees [Array] The individual `Users` who are assigned to this ticket. This does not include + # `Users` who just have view access to this ticket. + # @param assigned_teams [Array] The `Teams` that are assigned to this ticket. This does not include `Teams` who + # just have view access to this ticket. # @param creator [Merge::Ticketing::TicketRequestCreator] The user who created this ticket. # @param due_date [DateTime] The ticket's due date. # @param status [Merge::Ticketing::TicketStatusEnum] The current status of the ticket. @@ -89,7 +99,7 @@ class TicketRequest # - `ON_HOLD` - ON_HOLD # @param description [String] The ticket’s description. HTML version of description is mapped if supported by # the third-party platform. - # @param collections [Array] + # @param collections [Array] The `Collections` that this `Ticket` is included in. # @param ticket_type [String] The sub category of the ticket within the 3rd party system. Examples include # incident, task, subtask or to-do. # @param account [Merge::Ticketing::TicketRequestAccount] The account associated with the ticket. @@ -97,6 +107,7 @@ class TicketRequest # @param parent_ticket [Merge::Ticketing::TicketRequestParentTicket] The ticket's parent ticket. # @param attachments [Array] # @param tags [Array] + # @param roles [Array] # @param completed_at [DateTime] When the ticket was completed. # @param ticket_url [String] The 3rd party url of the Ticket. # @param priority [Merge::Ticketing::PriorityEnum] The priority or urgency of the Ticket. @@ -109,10 +120,11 @@ class TicketRequest # @param remote_fields [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition # @return [Merge::Ticketing::TicketRequest] - def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, status: OMIT, description: OMIT, - collections: OMIT, ticket_type: OMIT, account: OMIT, contact: OMIT, parent_ticket: OMIT, attachments: OMIT, tags: OMIT, completed_at: OMIT, ticket_url: OMIT, priority: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) + def initialize(name: OMIT, assignees: OMIT, assigned_teams: OMIT, creator: OMIT, due_date: OMIT, status: OMIT, + description: OMIT, collections: OMIT, ticket_type: OMIT, account: OMIT, contact: OMIT, parent_ticket: OMIT, attachments: OMIT, tags: OMIT, roles: OMIT, completed_at: OMIT, ticket_url: OMIT, priority: OMIT, integration_params: OMIT, linked_account_params: OMIT, remote_fields: OMIT, additional_properties: nil) @name = name if name != OMIT @assignees = assignees if assignees != OMIT + @assigned_teams = assigned_teams if assigned_teams != OMIT @creator = creator if creator != OMIT @due_date = due_date if due_date != OMIT @status = status if status != OMIT @@ -124,6 +136,7 @@ def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, statu @parent_ticket = parent_ticket if parent_ticket != OMIT @attachments = attachments if attachments != OMIT @tags = tags if tags != OMIT + @roles = roles if roles != OMIT @completed_at = completed_at if completed_at != OMIT @ticket_url = ticket_url if ticket_url != OMIT @priority = priority if priority != OMIT @@ -134,6 +147,7 @@ def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, statu @_field_set = { "name": name, "assignees": assignees, + "assigned_teams": assigned_teams, "creator": creator, "due_date": due_date, "status": status, @@ -145,6 +159,7 @@ def initialize(name: OMIT, assignees: OMIT, creator: OMIT, due_date: OMIT, statu "parent_ticket": parent_ticket, "attachments": attachments, "tags": tags, + "roles": roles, "completed_at": completed_at, "ticket_url": ticket_url, "priority": priority, @@ -168,6 +183,10 @@ def self.from_json(json_object:) item = item.to_json Merge::Ticketing::TicketRequestAssigneesItem.from_json(json_object: item) end + assigned_teams = parsed_json["assigned_teams"]&.map do |item| + item = item.to_json + Merge::Ticketing::TicketRequestAssignedTeamsItem.from_json(json_object: item) + end if parsed_json["creator"].nil? creator = nil else @@ -205,6 +224,7 @@ def self.from_json(json_object:) Merge::Ticketing::TicketRequestAttachmentsItem.from_json(json_object: item) end tags = parsed_json["tags"] + roles = parsed_json["roles"] completed_at = (DateTime.parse(parsed_json["completed_at"]) unless parsed_json["completed_at"].nil?) ticket_url = parsed_json["ticket_url"] priority = parsed_json["priority"] @@ -217,6 +237,7 @@ def self.from_json(json_object:) new( name: name, assignees: assignees, + assigned_teams: assigned_teams, creator: creator, due_date: due_date, status: status, @@ -228,6 +249,7 @@ def self.from_json(json_object:) parent_ticket: parent_ticket, attachments: attachments, tags: tags, + roles: roles, completed_at: completed_at, ticket_url: ticket_url, priority: priority, @@ -254,6 +276,7 @@ def to_json(*_args) def self.validate_raw(obj:) obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.") obj.assignees&.is_a?(Array) != false || raise("Passed value for field obj.assignees is not the expected type, validation failed.") + obj.assigned_teams&.is_a?(Array) != false || raise("Passed value for field obj.assigned_teams is not the expected type, validation failed.") obj.creator.nil? || Merge::Ticketing::TicketRequestCreator.validate_raw(obj: obj.creator) obj.due_date&.is_a?(DateTime) != false || raise("Passed value for field obj.due_date is not the expected type, validation failed.") obj.status&.is_a?(Merge::Ticketing::TicketStatusEnum) != false || raise("Passed value for field obj.status is not the expected type, validation failed.") @@ -265,6 +288,7 @@ def self.validate_raw(obj:) obj.parent_ticket.nil? || Merge::Ticketing::TicketRequestParentTicket.validate_raw(obj: obj.parent_ticket) obj.attachments&.is_a?(Array) != false || raise("Passed value for field obj.attachments is not the expected type, validation failed.") obj.tags&.is_a?(Array) != false || raise("Passed value for field obj.tags is not the expected type, validation failed.") + obj.roles&.is_a?(Array) != false || raise("Passed value for field obj.roles is not the expected type, validation failed.") obj.completed_at&.is_a?(DateTime) != false || raise("Passed value for field obj.completed_at is not the expected type, validation failed.") obj.ticket_url&.is_a?(String) != false || raise("Passed value for field obj.ticket_url is not the expected type, validation failed.") obj.priority&.is_a?(Merge::Ticketing::PriorityEnum) != false || raise("Passed value for field obj.priority is not the expected type, validation failed.") diff --git a/lib/merge_ruby_client/ticketing/types/ticket_request_assigned_teams_item.rb b/lib/merge_ruby_client/ticketing/types/ticket_request_assigned_teams_item.rb new file mode 100644 index 00000000..661c1625 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/ticket_request_assigned_teams_item.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require "json" +require_relative "team" + +module Merge + module Ticketing + class TicketRequestAssignedTeamsItem + # Deserialize a JSON object to an instance of TicketRequestAssignedTeamsItem + # + # @param json_object [String] + # @return [Merge::Ticketing::TicketRequestAssignedTeamsItem] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Ticketing::Team.validate_raw(obj: struct) + return Merge::Ticketing::Team.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Ticketing::Team.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/user.rb b/lib/merge_ruby_client/ticketing/types/user.rb index 06ddd5c6..9a32ccb0 100644 --- a/lib/merge_ruby_client/ticketing/types/user.rb +++ b/lib/merge_ruby_client/ticketing/types/user.rb @@ -11,7 +11,10 @@ module Merge module Ticketing # # The User Object # ### Description - # The `User` object is used to represent an employee within a company. + # The `User` object is used to represent a user with a login to the ticketing + # system. + # Users are either assignees who are directly responsible or a viewer on a + # `Ticket`/ `Collection`. # ### Usage Example # TODO class User @@ -36,7 +39,9 @@ class User # @return [String] The user's avatar picture. attr_reader :avatar # @return [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). attr_reader :remote_was_deleted # @return [Hash{String => Object}] attr_reader :field_mappings @@ -61,7 +66,9 @@ class User # @param roles [Array] # @param avatar [String] The user's avatar picture. # @param remote_was_deleted [Boolean] Indicates whether or not this object has been deleted in the third party - # platform. + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param field_mappings [Hash{String => Object}] # @param remote_data [Array] # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition diff --git a/lib/merge_ruby_client/ticketing/types/viewer.rb b/lib/merge_ruby_client/ticketing/types/viewer.rb new file mode 100644 index 00000000..095d28a8 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/viewer.rb @@ -0,0 +1,123 @@ +# frozen_string_literal: true + +require "date" +require_relative "viewer_team" +require_relative "viewer_user" +require "ostruct" +require "json" + +module Merge + module Ticketing + # # The Viewer Object + # ### Description + # The `Viewer` object is used to represent a User or Team within a company. + # ### Usage Example + # TODO + class Viewer + # @return [String] + attr_reader :id + # @return [String] The third-party API ID of the matching object. + attr_reader :remote_id + # @return [DateTime] The datetime that this object was created by Merge. + attr_reader :created_at + # @return [DateTime] The datetime that this object was modified by Merge. + attr_reader :modified_at + # @return [Merge::Ticketing::ViewerTeam] The Team this Viewer belongs to. + attr_reader :team + # @return [Merge::Ticketing::ViewerUser] The User this Viewer belongs to. + attr_reader :user + # @return [OpenStruct] Additional properties unmapped to the current class definition + attr_reader :additional_properties + # @return [Object] + attr_reader :_field_set + protected :_field_set + + OMIT = Object.new + + # @param id [String] + # @param remote_id [String] The third-party API ID of the matching object. + # @param created_at [DateTime] The datetime that this object was created by Merge. + # @param modified_at [DateTime] The datetime that this object was modified by Merge. + # @param team [Merge::Ticketing::ViewerTeam] The Team this Viewer belongs to. + # @param user [Merge::Ticketing::ViewerUser] The User this Viewer belongs to. + # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition + # @return [Merge::Ticketing::Viewer] + def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, team: OMIT, user: OMIT, + additional_properties: nil) + @id = id if id != OMIT + @remote_id = remote_id if remote_id != OMIT + @created_at = created_at if created_at != OMIT + @modified_at = modified_at if modified_at != OMIT + @team = team if team != OMIT + @user = user if user != OMIT + @additional_properties = additional_properties + @_field_set = { + "id": id, + "remote_id": remote_id, + "created_at": created_at, + "modified_at": modified_at, + "team": team, + "user": user + }.reject do |_k, v| + v == OMIT + end + end + + # Deserialize a JSON object to an instance of Viewer + # + # @param json_object [String] + # @return [Merge::Ticketing::Viewer] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + parsed_json = JSON.parse(json_object) + id = parsed_json["id"] + remote_id = parsed_json["remote_id"] + created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?) + modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?) + if parsed_json["team"].nil? + team = nil + else + team = parsed_json["team"].to_json + team = Merge::Ticketing::ViewerTeam.from_json(json_object: team) + end + if parsed_json["user"].nil? + user = nil + else + user = parsed_json["user"].to_json + user = Merge::Ticketing::ViewerUser.from_json(json_object: user) + end + new( + id: id, + remote_id: remote_id, + created_at: created_at, + modified_at: modified_at, + team: team, + user: user, + additional_properties: struct + ) + end + + # Serialize an instance of Viewer to a JSON object + # + # @return [String] + def to_json(*_args) + @_field_set&.to_json + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.") + obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.") + obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.") + obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.") + obj.team.nil? || Merge::Ticketing::ViewerTeam.validate_raw(obj: obj.team) + obj.user.nil? || Merge::Ticketing::ViewerUser.validate_raw(obj: obj.user) + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/viewer_team.rb b/lib/merge_ruby_client/ticketing/types/viewer_team.rb new file mode 100644 index 00000000..ec95e51a --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/viewer_team.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "team" + +module Merge + module Ticketing + # The Team this Viewer belongs to. + class ViewerTeam + # Deserialize a JSON object to an instance of ViewerTeam + # + # @param json_object [String] + # @return [Merge::Ticketing::ViewerTeam] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Ticketing::Team.validate_raw(obj: struct) + return Merge::Ticketing::Team.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Ticketing::Team.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/types/viewer_user.rb b/lib/merge_ruby_client/ticketing/types/viewer_user.rb new file mode 100644 index 00000000..971d50f6 --- /dev/null +++ b/lib/merge_ruby_client/ticketing/types/viewer_user.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require "json" +require_relative "user" + +module Merge + module Ticketing + # The User this Viewer belongs to. + class ViewerUser + # Deserialize a JSON object to an instance of ViewerUser + # + # @param json_object [String] + # @return [Merge::Ticketing::ViewerUser] + def self.from_json(json_object:) + struct = JSON.parse(json_object, object_class: OpenStruct) + begin + struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.") + return struct unless struct.nil? + + return nil + rescue StandardError + # noop + end + begin + Merge::Ticketing::User.validate_raw(obj: struct) + return Merge::Ticketing::User.from_json(json_object: struct) unless struct.nil? + + return nil + rescue StandardError + # noop + end + struct + end + + # Leveraged for Union-type generation, validate_raw attempts to parse the given + # hash and check each fields type against the current object's property + # definitions. + # + # @param obj [Object] + # @return [Void] + def self.validate_raw(obj:) + begin + return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.") + rescue StandardError + # noop + end + begin + return Merge::Ticketing::User.validate_raw(obj: obj) + rescue StandardError + # noop + end + raise("Passed value matched no type within the union, validation failed.") + end + end + end +end diff --git a/lib/merge_ruby_client/ticketing/users/client.rb b/lib/merge_ruby_client/ticketing/users/client.rb index 900c4766..54f3a069 100644 --- a/lib/merge_ruby_client/ticketing/users/client.rb +++ b/lib/merge_ruby_client/ticketing/users/client.rb @@ -29,9 +29,14 @@ def initialize(request_client:) # insensitive). # @param expand [Merge::Ticketing::Users::UsersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -47,7 +52,7 @@ def initialize(request_client:) # ) # api.ticketing.users.list def list(created_after: nil, created_before: nil, cursor: nil, email_address: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil? @@ -66,6 +71,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, email_address: ni "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, @@ -138,9 +144,14 @@ def initialize(request_client:) # insensitive). # @param expand [Merge::Ticketing::Users::UsersListRequestExpand] Which relations should be returned in expanded form. Multiple relation names # should be comma separated without spaces. - # @param include_deleted_data [Boolean] Whether to include data that was marked as deleted by third party webhooks. + # @param include_deleted_data [Boolean] Indicates whether or not this object has been deleted in the third party + # platform. Full coverage deletion detection is a premium add-on. Native deletion + # detection is offered for free with limited coverage. [Learn + # more](https://docs.merge.dev/integrations/hris/supported-features/). # @param include_remote_data [Boolean] Whether to include the original data Merge fetched from the third-party to # produce these models. + # @param include_shell_data [Boolean] Whether to include shell records. Shell records are empty records (they may + # contain some metadata but all other fields are null). # @param modified_after [DateTime] If provided, only objects synced by Merge after this date time will be returned. # @param modified_before [DateTime] If provided, only objects synced by Merge before this date time will be # returned. @@ -156,7 +167,7 @@ def initialize(request_client:) # ) # api.ticketing.users.list def list(created_after: nil, created_before: nil, cursor: nil, email_address: nil, expand: nil, - include_deleted_data: nil, include_remote_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) + include_deleted_data: nil, include_remote_data: nil, include_shell_data: nil, modified_after: nil, modified_before: nil, page_size: nil, remote_id: nil, request_options: nil) Async do response = @request_client.conn.get do |req| req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil? @@ -176,6 +187,7 @@ def list(created_after: nil, created_before: nil, cursor: nil, email_address: ni "expand": expand, "include_deleted_data": include_deleted_data, "include_remote_data": include_remote_data, + "include_shell_data": include_shell_data, "modified_after": modified_after, "modified_before": modified_before, "page_size": page_size, diff --git a/lib/requests.rb b/lib/requests.rb index 423f212d..092e9a37 100644 --- a/lib/requests.rb +++ b/lib/requests.rb @@ -48,7 +48,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers - headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "merge_ruby_client", "X-Fern-SDK-Version": "0.1.4" } + headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "merge_ruby_client", "X-Fern-SDK-Version": "1.0.0" } headers["Authorization"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil? headers end @@ -96,7 +96,7 @@ def get_url(request_options: nil) # @return [Hash{String => String}] def get_headers - headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "merge_ruby_client", "X-Fern-SDK-Version": "0.1.4" } + headers = { "X-Fern-Language": "Ruby", "X-Fern-SDK-Name": "merge_ruby_client", "X-Fern-SDK-Version": "1.0.0" } headers["Authorization"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil? headers end diff --git a/lib/types_export.rb b/lib/types_export.rb index c10ed7ec..1e3bc606 100644 --- a/lib/types_export.rb +++ b/lib/types_export.rb @@ -6,6 +6,8 @@ require_relative "merge_ruby_client/ats/activities/types/activities_retrieve_request_show_enum_origins" require_relative "merge_ruby_client/ats/applications/types/applications_list_request_expand" require_relative "merge_ruby_client/ats/applications/types/applications_retrieve_request_expand" +require_relative "merge_ruby_client/ats/types/remote_response" +require_relative "merge_ruby_client/ats/async_passthrough/types/async_passthrough_retrieve_response" require_relative "merge_ruby_client/ats/candidates/types/candidates_list_request_expand" require_relative "merge_ruby_client/ats/candidates/types/candidates_retrieve_request_expand" require_relative "merge_ruby_client/ats/eeocs/types/eeocs_list_request_remote_fields" @@ -123,6 +125,7 @@ require_relative "merge_ruby_client/ats/types/job_posting_status_enum" require_relative "merge_ruby_client/ats/types/job_status_enum" require_relative "merge_ruby_client/ats/types/job_type_enum" +require_relative "merge_ruby_client/ats/types/language_enum" require_relative "merge_ruby_client/ats/types/link_token" require_relative "merge_ruby_client/ats/types/linked_account_status" require_relative "merge_ruby_client/ats/types/meta_response" @@ -168,7 +171,6 @@ require_relative "merge_ruby_client/ats/types/remote_field_api" require_relative "merge_ruby_client/ats/types/remote_field_api_response" require_relative "merge_ruby_client/ats/types/remote_key" -require_relative "merge_ruby_client/ats/types/remote_response" require_relative "merge_ruby_client/ats/types/request_format_enum" require_relative "merge_ruby_client/ats/types/response_type_enum" require_relative "merge_ruby_client/ats/types/role_enum" @@ -205,6 +207,8 @@ require_relative "merge_ruby_client/ats/types/visibility_enum" require_relative "merge_ruby_client/ats/types/warning_validation_problem" require_relative "merge_ruby_client/ats/types/webhook_receiver" +require_relative "merge_ruby_client/crm/types/remote_response" +require_relative "merge_ruby_client/crm/async_passthrough/types/async_passthrough_retrieve_response" require_relative "merge_ruby_client/crm/contacts/types/contacts_list_request_expand" require_relative "merge_ruby_client/crm/contacts/types/contacts_retrieve_request_expand" require_relative "merge_ruby_client/crm/engagements/types/engagements_list_request_expand" @@ -305,6 +309,7 @@ require_relative "merge_ruby_client/crm/types/item_format_enum" require_relative "merge_ruby_client/crm/types/item_schema" require_relative "merge_ruby_client/crm/types/item_type_enum" +require_relative "merge_ruby_client/crm/types/language_enum" require_relative "merge_ruby_client/crm/types/lead_owner" require_relative "merge_ruby_client/crm/types/lead_converted_contact" require_relative "merge_ruby_client/crm/types/lead_converted_account" @@ -389,7 +394,6 @@ require_relative "merge_ruby_client/crm/types/remote_field_request_remote_field_class" require_relative "merge_ruby_client/crm/types/remote_field_request" require_relative "merge_ruby_client/crm/types/remote_key" -require_relative "merge_ruby_client/crm/types/remote_response" require_relative "merge_ruby_client/crm/types/request_format_enum" require_relative "merge_ruby_client/crm/types/response_type_enum" require_relative "merge_ruby_client/crm/types/role_enum" @@ -409,6 +413,8 @@ require_relative "merge_ruby_client/crm/types/validation_problem_source" require_relative "merge_ruby_client/crm/types/warning_validation_problem" require_relative "merge_ruby_client/crm/types/webhook_receiver" +require_relative "merge_ruby_client/filestorage/types/remote_response" +require_relative "merge_ruby_client/filestorage/async_passthrough/types/async_passthrough_retrieve_response" require_relative "merge_ruby_client/filestorage/files/types/files_list_request_expand" require_relative "merge_ruby_client/filestorage/files/types/files_retrieve_request_expand" require_relative "merge_ruby_client/filestorage/folders/types/folders_list_request_expand" @@ -471,10 +477,12 @@ require_relative "merge_ruby_client/filestorage/types/folder_request_permissions" require_relative "merge_ruby_client/filestorage/types/folder_request" require_relative "merge_ruby_client/filestorage/types/group" +require_relative "merge_ruby_client/filestorage/types/group_child_groups_item" require_relative "merge_ruby_client/filestorage/types/individual_common_model_scope_deserializer" require_relative "merge_ruby_client/filestorage/types/individual_common_model_scope_deserializer_request" require_relative "merge_ruby_client/filestorage/types/issue" require_relative "merge_ruby_client/filestorage/types/issue_status_enum" +require_relative "merge_ruby_client/filestorage/types/language_enum" require_relative "merge_ruby_client/filestorage/types/link_token" require_relative "merge_ruby_client/filestorage/types/linked_account_status" require_relative "merge_ruby_client/filestorage/types/meta_response" @@ -498,12 +506,12 @@ require_relative "merge_ruby_client/filestorage/types/permission" require_relative "merge_ruby_client/filestorage/types/permission_request_user" require_relative "merge_ruby_client/filestorage/types/permission_request_group" +require_relative "merge_ruby_client/filestorage/types/remote_data" require_relative "merge_ruby_client/filestorage/types/remote_endpoint_info" require_relative "merge_ruby_client/filestorage/types/remote_field_api_coverage" require_relative "merge_ruby_client/filestorage/types/remote_field_api" require_relative "merge_ruby_client/filestorage/types/remote_field_api_response" require_relative "merge_ruby_client/filestorage/types/remote_key" -require_relative "merge_ruby_client/filestorage/types/remote_response" require_relative "merge_ruby_client/filestorage/types/request_format_enum" require_relative "merge_ruby_client/filestorage/types/response_type_enum" require_relative "merge_ruby_client/filestorage/types/role_enum" @@ -515,6 +523,8 @@ require_relative "merge_ruby_client/filestorage/types/validation_problem_source" require_relative "merge_ruby_client/filestorage/types/warning_validation_problem" require_relative "merge_ruby_client/filestorage/types/webhook_receiver" +require_relative "merge_ruby_client/hris/types/remote_response" +require_relative "merge_ruby_client/hris/async_passthrough/types/async_passthrough_retrieve_response" require_relative "merge_ruby_client/hris/bank_info/types/bank_info_list_request_account_type" require_relative "merge_ruby_client/hris/bank_info/types/bank_info_list_request_order_by" require_relative "merge_ruby_client/hris/employee_payroll_runs/types/employee_payroll_runs_list_request_expand" @@ -536,6 +546,10 @@ require_relative "merge_ruby_client/hris/issues/types/issues_list_request_status" require_relative "merge_ruby_client/hris/linked_accounts/types/linked_accounts_list_request_category" require_relative "merge_ruby_client/hris/locations/types/locations_list_request_location_type" +require_relative "merge_ruby_client/hris/locations/types/locations_list_request_remote_fields" +require_relative "merge_ruby_client/hris/locations/types/locations_list_request_show_enum_origins" +require_relative "merge_ruby_client/hris/locations/types/locations_retrieve_request_remote_fields" +require_relative "merge_ruby_client/hris/locations/types/locations_retrieve_request_show_enum_origins" require_relative "merge_ruby_client/hris/payroll_runs/types/payroll_runs_list_request_remote_fields" require_relative "merge_ruby_client/hris/payroll_runs/types/payroll_runs_list_request_run_type" require_relative "merge_ruby_client/hris/payroll_runs/types/payroll_runs_list_request_show_enum_origins" @@ -635,6 +649,7 @@ require_relative "merge_ruby_client/hris/types/individual_common_model_scope_deserializer_request" require_relative "merge_ruby_client/hris/types/issue" require_relative "merge_ruby_client/hris/types/issue_status_enum" +require_relative "merge_ruby_client/hris/types/language_enum" require_relative "merge_ruby_client/hris/types/link_token" require_relative "merge_ruby_client/hris/types/linked_account_status" require_relative "merge_ruby_client/hris/types/location_type_enum" @@ -677,7 +692,6 @@ require_relative "merge_ruby_client/hris/types/remote_field_api" require_relative "merge_ruby_client/hris/types/remote_field_api_response" require_relative "merge_ruby_client/hris/types/remote_key" -require_relative "merge_ruby_client/hris/types/remote_response" require_relative "merge_ruby_client/hris/types/request_format_enum" require_relative "merge_ruby_client/hris/types/request_type_enum" require_relative "merge_ruby_client/hris/types/response_type_enum" @@ -699,14 +713,19 @@ require_relative "merge_ruby_client/hris/types/time_off_request" require_relative "merge_ruby_client/hris/types/time_off_response" require_relative "merge_ruby_client/hris/types/time_off_status_enum" +require_relative "merge_ruby_client/hris/types/timesheet_entry_employee" require_relative "merge_ruby_client/hris/types/timesheet_entry" +require_relative "merge_ruby_client/hris/types/timesheet_entry_request_employee" require_relative "merge_ruby_client/hris/types/timesheet_entry_request" require_relative "merge_ruby_client/hris/types/timesheet_entry_response" require_relative "merge_ruby_client/hris/types/units_enum" require_relative "merge_ruby_client/hris/types/validation_problem_source" require_relative "merge_ruby_client/hris/types/warning_validation_problem" require_relative "merge_ruby_client/hris/types/webhook_receiver" -require_relative "merge_ruby_client/ticketing/collections/types/collections_users_list_request_expand" +require_relative "merge_ruby_client/ticketing/types/remote_response" +require_relative "merge_ruby_client/ticketing/async_passthrough/types/async_passthrough_retrieve_response" +require_relative "merge_ruby_client/ticketing/collections/types/collections_list_request_expand" +require_relative "merge_ruby_client/ticketing/collections/types/collections_retrieve_request_expand" require_relative "merge_ruby_client/ticketing/comments/types/comments_list_request_expand" require_relative "merge_ruby_client/ticketing/comments/types/comments_retrieve_request_expand" require_relative "merge_ruby_client/ticketing/issues/types/issues_list_request_status" @@ -716,11 +735,10 @@ require_relative "merge_ruby_client/ticketing/tickets/types/tickets_list_request_priority" require_relative "merge_ruby_client/ticketing/tickets/types/tickets_list_request_remote_fields" require_relative "merge_ruby_client/ticketing/tickets/types/tickets_list_request_show_enum_origins" -require_relative "merge_ruby_client/ticketing/tickets/types/tickets_list_request_status" require_relative "merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_expand" require_relative "merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_remote_fields" require_relative "merge_ruby_client/ticketing/tickets/types/tickets_retrieve_request_show_enum_origins" -require_relative "merge_ruby_client/ticketing/tickets/types/tickets_collaborators_list_request_expand" +require_relative "merge_ruby_client/ticketing/tickets/types/tickets_viewers_list_request_expand" require_relative "merge_ruby_client/ticketing/users/types/users_list_request_expand" require_relative "merge_ruby_client/ticketing/users/types/users_retrieve_request_expand" require_relative "merge_ruby_client/ticketing/types/access_level_enum" @@ -744,6 +762,8 @@ require_relative "merge_ruby_client/ticketing/types/category_enum" require_relative "merge_ruby_client/ticketing/types/collection" require_relative "merge_ruby_client/ticketing/types/collection_parent_collection" +require_relative "merge_ruby_client/ticketing/types/team" +require_relative "merge_ruby_client/ticketing/types/collection_teams_item" require_relative "merge_ruby_client/ticketing/types/collection_type_enum" require_relative "merge_ruby_client/ticketing/types/user" require_relative "merge_ruby_client/ticketing/types/comment_user" @@ -787,6 +807,7 @@ require_relative "merge_ruby_client/ticketing/types/item_format_enum" require_relative "merge_ruby_client/ticketing/types/item_schema" require_relative "merge_ruby_client/ticketing/types/item_type_enum" +require_relative "merge_ruby_client/ticketing/types/language_enum" require_relative "merge_ruby_client/ticketing/types/link_token" require_relative "merge_ruby_client/ticketing/types/linked_account_status" require_relative "merge_ruby_client/ticketing/types/meta_response" @@ -811,6 +832,7 @@ require_relative "merge_ruby_client/ticketing/types/paginated_team_list" require_relative "merge_ruby_client/ticketing/types/paginated_ticket_list" require_relative "merge_ruby_client/ticketing/types/paginated_user_list" +require_relative "merge_ruby_client/ticketing/types/paginated_viewer_list" require_relative "merge_ruby_client/ticketing/types/patched_ticket_request" require_relative "merge_ruby_client/ticketing/types/priority_enum" require_relative "merge_ruby_client/ticketing/types/project" @@ -826,7 +848,6 @@ require_relative "merge_ruby_client/ticketing/types/remote_field_request_remote_field_class" require_relative "merge_ruby_client/ticketing/types/remote_field_request" require_relative "merge_ruby_client/ticketing/types/remote_key" -require_relative "merge_ruby_client/ticketing/types/remote_response" require_relative "merge_ruby_client/ticketing/types/request_format_enum" require_relative "merge_ruby_client/ticketing/types/response_type_enum" require_relative "merge_ruby_client/ticketing/types/role" @@ -835,8 +856,8 @@ require_relative "merge_ruby_client/ticketing/types/sync_status" require_relative "merge_ruby_client/ticketing/types/sync_status_status_enum" require_relative "merge_ruby_client/ticketing/types/tag" -require_relative "merge_ruby_client/ticketing/types/team" require_relative "merge_ruby_client/ticketing/types/ticket_assignees_item" +require_relative "merge_ruby_client/ticketing/types/ticket_assigned_teams_item" require_relative "merge_ruby_client/ticketing/types/ticket_creator" require_relative "merge_ruby_client/ticketing/types/ticket_collections_item" require_relative "merge_ruby_client/ticketing/types/ticket_account" @@ -846,6 +867,7 @@ require_relative "merge_ruby_client/ticketing/types/ticket_access_enum" require_relative "merge_ruby_client/ticketing/types/ticket_actions_enum" require_relative "merge_ruby_client/ticketing/types/ticket_request_assignees_item" +require_relative "merge_ruby_client/ticketing/types/ticket_request_assigned_teams_item" require_relative "merge_ruby_client/ticketing/types/ticket_request_creator" require_relative "merge_ruby_client/ticketing/types/ticket_request_collections_item" require_relative "merge_ruby_client/ticketing/types/ticket_request_account" @@ -860,12 +882,17 @@ require_relative "merge_ruby_client/ticketing/types/user_teams_item" require_relative "merge_ruby_client/ticketing/types/user_roles_item" require_relative "merge_ruby_client/ticketing/types/validation_problem_source" +require_relative "merge_ruby_client/ticketing/types/viewer_team" +require_relative "merge_ruby_client/ticketing/types/viewer_user" +require_relative "merge_ruby_client/ticketing/types/viewer" require_relative "merge_ruby_client/ticketing/types/warning_validation_problem" require_relative "merge_ruby_client/ticketing/types/webhook_receiver" require_relative "merge_ruby_client/accounting/accounts/types/accounts_list_request_remote_fields" require_relative "merge_ruby_client/accounting/accounts/types/accounts_list_request_show_enum_origins" require_relative "merge_ruby_client/accounting/accounts/types/accounts_retrieve_request_remote_fields" require_relative "merge_ruby_client/accounting/accounts/types/accounts_retrieve_request_show_enum_origins" +require_relative "merge_ruby_client/accounting/types/remote_response" +require_relative "merge_ruby_client/accounting/async_passthrough/types/async_passthrough_retrieve_response" require_relative "merge_ruby_client/accounting/company_info/types/company_info_list_request_expand" require_relative "merge_ruby_client/accounting/company_info/types/company_info_retrieve_request_expand" require_relative "merge_ruby_client/accounting/contacts/types/contacts_list_request_expand" @@ -878,7 +905,10 @@ require_relative "merge_ruby_client/accounting/credit_notes/types/credit_notes_retrieve_request_show_enum_origins" require_relative "merge_ruby_client/accounting/expenses/types/expenses_list_request_expand" require_relative "merge_ruby_client/accounting/expenses/types/expenses_retrieve_request_expand" +require_relative "merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_list_request_expand" +require_relative "merge_ruby_client/accounting/general_ledger_transactions/types/general_ledger_transactions_retrieve_request_expand" require_relative "merge_ruby_client/accounting/invoices/types/invoices_list_request_expand" +require_relative "merge_ruby_client/accounting/invoices/types/invoices_list_request_status" require_relative "merge_ruby_client/accounting/invoices/types/invoices_list_request_type" require_relative "merge_ruby_client/accounting/invoices/types/invoices_retrieve_request_expand" require_relative "merge_ruby_client/accounting/issues/types/issues_list_request_status" @@ -896,6 +926,7 @@ require_relative "merge_ruby_client/accounting/vendor_credits/types/vendor_credits_list_request_expand" require_relative "merge_ruby_client/accounting/vendor_credits/types/vendor_credits_retrieve_request_expand" require_relative "merge_ruby_client/accounting/types/account" +require_relative "merge_ruby_client/accounting/types/account_account_type_enum" require_relative "merge_ruby_client/accounting/types/account_details" require_relative "merge_ruby_client/accounting/types/account_details_and_actions" require_relative "merge_ruby_client/accounting/types/account_details_and_actions_integration" @@ -909,7 +940,6 @@ require_relative "merge_ruby_client/accounting/types/accounting_attachment_request" require_relative "merge_ruby_client/accounting/types/accounting_attachment_response" require_relative "merge_ruby_client/accounting/types/accounting_period" -require_relative "merge_ruby_client/accounting/types/accounting_period_status_enum" require_relative "merge_ruby_client/accounting/types/accounting_phone_number" require_relative "merge_ruby_client/accounting/types/accounting_phone_number_request" require_relative "merge_ruby_client/accounting/types/address" @@ -917,11 +947,23 @@ require_relative "merge_ruby_client/accounting/types/address_type_enum" require_relative "merge_ruby_client/accounting/types/advanced_metadata" require_relative "merge_ruby_client/accounting/types/async_passthrough_reciept" +require_relative "merge_ruby_client/accounting/types/async_post_task" +require_relative "merge_ruby_client/accounting/types/async_post_task_result" +require_relative "merge_ruby_client/accounting/types/async_post_task_status_enum" require_relative "merge_ruby_client/accounting/types/audit_log_event" require_relative "merge_ruby_client/accounting/types/available_actions" require_relative "merge_ruby_client/accounting/types/company_info" require_relative "merge_ruby_client/accounting/types/balance_sheet_company" require_relative "merge_ruby_client/accounting/types/balance_sheet" +require_relative "merge_ruby_client/accounting/types/bank_feed_account" +require_relative "merge_ruby_client/accounting/types/bank_feed_account_account_type_enum" +require_relative "merge_ruby_client/accounting/types/bank_feed_account_request" +require_relative "merge_ruby_client/accounting/types/bank_feed_account_response" +require_relative "merge_ruby_client/accounting/types/bank_feed_transaction_bank_feed_account" +require_relative "merge_ruby_client/accounting/types/bank_feed_transaction" +require_relative "merge_ruby_client/accounting/types/bank_feed_transaction_request_request_bank_feed_account" +require_relative "merge_ruby_client/accounting/types/bank_feed_transaction_request_request" +require_relative "merge_ruby_client/accounting/types/bank_feed_transaction_response" require_relative "merge_ruby_client/accounting/types/cash_flow_statement_company" require_relative "merge_ruby_client/accounting/types/cash_flow_statement" require_relative "merge_ruby_client/accounting/types/categories_enum" @@ -930,6 +972,7 @@ require_relative "merge_ruby_client/accounting/types/classification_enum" require_relative "merge_ruby_client/accounting/types/common_model_scope_api" require_relative "merge_ruby_client/accounting/types/common_model_scopes_body_request" +require_relative "merge_ruby_client/accounting/types/component_type_enum" require_relative "merge_ruby_client/accounting/types/contact_addresses_item" require_relative "merge_ruby_client/accounting/types/contact" require_relative "merge_ruby_client/accounting/types/contact_request_addresses_item" @@ -946,15 +989,36 @@ require_relative "merge_ruby_client/accounting/types/credit_note_applied_payments_item" require_relative "merge_ruby_client/accounting/types/credit_note_accounting_period" require_relative "merge_ruby_client/accounting/types/credit_note" +require_relative "merge_ruby_client/accounting/types/invoice" +require_relative "merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_invoice" +require_relative "merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note" +require_relative "merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request_invoice" +require_relative "merge_ruby_client/accounting/types/credit_note_apply_line_for_credit_note_request" +require_relative "merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice_credit_note" +require_relative "merge_ruby_client/accounting/types/credit_note_apply_line_for_invoice" require_relative "merge_ruby_client/accounting/types/item" require_relative "merge_ruby_client/accounting/types/credit_note_line_item_item" require_relative "merge_ruby_client/accounting/types/credit_note_line_item_company" require_relative "merge_ruby_client/accounting/types/credit_note_line_item" +require_relative "merge_ruby_client/accounting/types/credit_note_line_item_request_item" +require_relative "merge_ruby_client/accounting/types/credit_note_line_item_request_company" +require_relative "merge_ruby_client/accounting/types/credit_note_line_item_request" +require_relative "merge_ruby_client/accounting/types/credit_note_request_contact" +require_relative "merge_ruby_client/accounting/types/credit_note_request_company" +require_relative "merge_ruby_client/accounting/types/credit_note_request_line_items_item" +require_relative "merge_ruby_client/accounting/types/credit_note_request_tracking_categories_item" +require_relative "merge_ruby_client/accounting/types/credit_note_request_payments_item" +require_relative "merge_ruby_client/accounting/types/credit_note_request_applied_payments_item" +require_relative "merge_ruby_client/accounting/types/credit_note_request_accounting_period" +require_relative "merge_ruby_client/accounting/types/credit_note_request" +require_relative "merge_ruby_client/accounting/types/credit_note_response" require_relative "merge_ruby_client/accounting/types/credit_note_status_enum" -require_relative "merge_ruby_client/accounting/types/currency_enum" +require_relative "merge_ruby_client/accounting/types/credit_or_debit_enum" require_relative "merge_ruby_client/accounting/types/data_passthrough_request" require_relative "merge_ruby_client/accounting/types/debug_mode_log" require_relative "merge_ruby_client/accounting/types/debug_model_log_summary" +require_relative "merge_ruby_client/accounting/types/employee_company" +require_relative "merge_ruby_client/accounting/types/employee" require_relative "merge_ruby_client/accounting/types/enabled_actions_enum" require_relative "merge_ruby_client/accounting/types/encoding_enum" require_relative "merge_ruby_client/accounting/types/error_validation_problem" @@ -962,30 +1026,36 @@ require_relative "merge_ruby_client/accounting/types/expense_account" require_relative "merge_ruby_client/accounting/types/expense_contact" require_relative "merge_ruby_client/accounting/types/expense_company" +require_relative "merge_ruby_client/accounting/types/expense_employee" require_relative "merge_ruby_client/accounting/types/expense_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/expense_accounting_period" require_relative "merge_ruby_client/accounting/types/expense" require_relative "merge_ruby_client/accounting/types/expense_line_item" require_relative "merge_ruby_client/accounting/types/expense_line_tracking_category" require_relative "merge_ruby_client/accounting/types/expense_line_tracking_categories_item" +require_relative "merge_ruby_client/accounting/types/expense_line_employee" require_relative "merge_ruby_client/accounting/types/expense_line_account" require_relative "merge_ruby_client/accounting/types/expense_line_contact" require_relative "merge_ruby_client/accounting/types/expense_line" require_relative "merge_ruby_client/accounting/types/expense_line_request_item" require_relative "merge_ruby_client/accounting/types/expense_line_request_tracking_category" require_relative "merge_ruby_client/accounting/types/expense_line_request_tracking_categories_item" +require_relative "merge_ruby_client/accounting/types/expense_line_request_employee" require_relative "merge_ruby_client/accounting/types/expense_line_request_account" require_relative "merge_ruby_client/accounting/types/expense_line_request_contact" require_relative "merge_ruby_client/accounting/types/expense_line_request" require_relative "merge_ruby_client/accounting/types/expense_request_account" require_relative "merge_ruby_client/accounting/types/expense_request_contact" require_relative "merge_ruby_client/accounting/types/expense_request_company" +require_relative "merge_ruby_client/accounting/types/expense_request_employee" require_relative "merge_ruby_client/accounting/types/expense_request_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/expense_request_accounting_period" require_relative "merge_ruby_client/accounting/types/expense_request" require_relative "merge_ruby_client/accounting/types/expense_response" require_relative "merge_ruby_client/accounting/types/external_target_field_api" require_relative "merge_ruby_client/accounting/types/external_target_field_api_response" +require_relative "merge_ruby_client/accounting/types/feed_status_enum" +require_relative "merge_ruby_client/accounting/types/field_format_enum" require_relative "merge_ruby_client/accounting/types/field_mapping_api_instance_target_field" require_relative "merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field_remote_endpoint_info" require_relative "merge_ruby_client/accounting/types/field_mapping_api_instance_remote_field" @@ -994,30 +1064,48 @@ require_relative "merge_ruby_client/accounting/types/field_mapping_instance_response" require_relative "merge_ruby_client/accounting/types/field_permission_deserializer" require_relative "merge_ruby_client/accounting/types/field_permission_deserializer_request" +require_relative "merge_ruby_client/accounting/types/field_type_enum" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_accounting_period" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_company" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_tracking_categories_item" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_line" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_general_ledger_transaction_lines_item" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_line_account" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_line_company" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_line_employee" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_line_contact" +require_relative "merge_ruby_client/accounting/types/general_ledger_transaction_line_item" require_relative "merge_ruby_client/accounting/types/income_statement_company" require_relative "merge_ruby_client/accounting/types/income_statement" require_relative "merge_ruby_client/accounting/types/individual_common_model_scope_deserializer" require_relative "merge_ruby_client/accounting/types/individual_common_model_scope_deserializer_request" require_relative "merge_ruby_client/accounting/types/invoice_contact" require_relative "merge_ruby_client/accounting/types/invoice_company" +require_relative "merge_ruby_client/accounting/types/invoice_employee" require_relative "merge_ruby_client/accounting/types/invoice_tracking_categories_item" -require_relative "merge_ruby_client/accounting/types/invoice_payments_item" -require_relative "merge_ruby_client/accounting/types/invoice_applied_payments_item" require_relative "merge_ruby_client/accounting/types/invoice_accounting_period" require_relative "merge_ruby_client/accounting/types/purchase_order" require_relative "merge_ruby_client/accounting/types/invoice_purchase_orders_item" -require_relative "merge_ruby_client/accounting/types/invoice" +require_relative "merge_ruby_client/accounting/types/invoice_payments_item" +require_relative "merge_ruby_client/accounting/types/invoice_applied_payments_item" +require_relative "merge_ruby_client/accounting/types/invoice_applied_credit_notes_item" +require_relative "merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice" +require_relative "merge_ruby_client/accounting/types/invoice_applied_vendor_credits_item" +require_relative "merge_ruby_client/accounting/types/invoice_line_item_employee" require_relative "merge_ruby_client/accounting/types/invoice_line_item_item" require_relative "merge_ruby_client/accounting/types/invoice_line_item_account" require_relative "merge_ruby_client/accounting/types/invoice_line_item_tracking_category" require_relative "merge_ruby_client/accounting/types/invoice_line_item_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/invoice_line_item" +require_relative "merge_ruby_client/accounting/types/invoice_line_item_request_employee" require_relative "merge_ruby_client/accounting/types/invoice_line_item_request_item" require_relative "merge_ruby_client/accounting/types/invoice_line_item_request_account" require_relative "merge_ruby_client/accounting/types/invoice_line_item_request_tracking_category" require_relative "merge_ruby_client/accounting/types/invoice_line_item_request_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/invoice_line_item_request" require_relative "merge_ruby_client/accounting/types/invoice_request_contact" +require_relative "merge_ruby_client/accounting/types/invoice_request_employee" require_relative "merge_ruby_client/accounting/types/invoice_request_company" require_relative "merge_ruby_client/accounting/types/invoice_request_payments_item" require_relative "merge_ruby_client/accounting/types/invoice_request_tracking_categories_item" @@ -1031,6 +1119,12 @@ require_relative "merge_ruby_client/accounting/types/item_purchase_account" require_relative "merge_ruby_client/accounting/types/item_sales_account" require_relative "merge_ruby_client/accounting/types/item_company" +require_relative "merge_ruby_client/accounting/types/tax_rate" +require_relative "merge_ruby_client/accounting/types/item_purchase_tax_rate" +require_relative "merge_ruby_client/accounting/types/item_sales_tax_rate" +require_relative "merge_ruby_client/accounting/types/item_format_enum" +require_relative "merge_ruby_client/accounting/types/item_schema" +require_relative "merge_ruby_client/accounting/types/item_type_enum" require_relative "merge_ruby_client/accounting/types/journal_entry_payments_item" require_relative "merge_ruby_client/accounting/types/journal_entry_applied_payments_item" require_relative "merge_ruby_client/accounting/types/journal_entry_company" @@ -1050,6 +1144,7 @@ require_relative "merge_ruby_client/accounting/types/journal_line_request_tracking_category" require_relative "merge_ruby_client/accounting/types/journal_line_request_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/journal_line_request" +require_relative "merge_ruby_client/accounting/types/language_enum" require_relative "merge_ruby_client/accounting/types/link_token" require_relative "merge_ruby_client/accounting/types/linked_account_status" require_relative "merge_ruby_client/accounting/types/meta_response" @@ -1064,11 +1159,15 @@ require_relative "merge_ruby_client/accounting/types/paginated_accounting_period_list" require_relative "merge_ruby_client/accounting/types/paginated_audit_log_event_list" require_relative "merge_ruby_client/accounting/types/paginated_balance_sheet_list" +require_relative "merge_ruby_client/accounting/types/paginated_bank_feed_account_list" +require_relative "merge_ruby_client/accounting/types/paginated_bank_feed_transaction_list" require_relative "merge_ruby_client/accounting/types/paginated_cash_flow_statement_list" require_relative "merge_ruby_client/accounting/types/paginated_company_info_list" require_relative "merge_ruby_client/accounting/types/paginated_contact_list" require_relative "merge_ruby_client/accounting/types/paginated_credit_note_list" +require_relative "merge_ruby_client/accounting/types/paginated_employee_list" require_relative "merge_ruby_client/accounting/types/paginated_expense_list" +require_relative "merge_ruby_client/accounting/types/paginated_general_ledger_transaction_list" require_relative "merge_ruby_client/accounting/types/paginated_income_statement_list" require_relative "merge_ruby_client/accounting/types/paginated_invoice_list" require_relative "merge_ruby_client/accounting/types/paginated_issue_list" @@ -1076,6 +1175,7 @@ require_relative "merge_ruby_client/accounting/types/paginated_journal_entry_list" require_relative "merge_ruby_client/accounting/types/paginated_payment_list" require_relative "merge_ruby_client/accounting/types/paginated_purchase_order_list" +require_relative "merge_ruby_client/accounting/types/paginated_remote_field_class_list" require_relative "merge_ruby_client/accounting/types/paginated_sync_status_list" require_relative "merge_ruby_client/accounting/types/paginated_tax_rate_list" require_relative "merge_ruby_client/accounting/types/paginated_tracking_category_list" @@ -1086,6 +1186,7 @@ require_relative "merge_ruby_client/accounting/types/patched_payment_request_company" require_relative "merge_ruby_client/accounting/types/patched_payment_request_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/patched_payment_request_accounting_period" +require_relative "merge_ruby_client/accounting/types/payment_line_item_request" require_relative "merge_ruby_client/accounting/types/patched_payment_request_applied_to_lines_item" require_relative "merge_ruby_client/accounting/types/patched_payment_request" require_relative "merge_ruby_client/accounting/types/payment_contact" @@ -1094,7 +1195,6 @@ require_relative "merge_ruby_client/accounting/types/payment_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/payment_accounting_period" require_relative "merge_ruby_client/accounting/types/payment_applied_to_lines_item" -require_relative "merge_ruby_client/accounting/types/payment_line_item_request" require_relative "merge_ruby_client/accounting/types/payment_request_contact" require_relative "merge_ruby_client/accounting/types/payment_request_account" require_relative "merge_ruby_client/accounting/types/payment_request_company" @@ -1123,36 +1223,56 @@ require_relative "merge_ruby_client/accounting/types/purchase_order_status_enum" require_relative "merge_ruby_client/accounting/types/remote_data" require_relative "merge_ruby_client/accounting/types/remote_endpoint_info" +require_relative "merge_ruby_client/accounting/types/remote_field" require_relative "merge_ruby_client/accounting/types/remote_field_api_coverage" require_relative "merge_ruby_client/accounting/types/remote_field_api" require_relative "merge_ruby_client/accounting/types/remote_field_api_response" +require_relative "merge_ruby_client/accounting/types/remote_field_class" +require_relative "merge_ruby_client/accounting/types/remote_field_request_remote_field_class" +require_relative "merge_ruby_client/accounting/types/remote_field_request" require_relative "merge_ruby_client/accounting/types/remote_key" -require_relative "merge_ruby_client/accounting/types/remote_response" require_relative "merge_ruby_client/accounting/types/report_item" require_relative "merge_ruby_client/accounting/types/request_format_enum" require_relative "merge_ruby_client/accounting/types/response_type_enum" require_relative "merge_ruby_client/accounting/types/role_enum" require_relative "merge_ruby_client/accounting/types/selective_sync_configurations_usage_enum" require_relative "merge_ruby_client/accounting/types/status_7_d_1_enum" +require_relative "merge_ruby_client/accounting/types/status_895_enum" require_relative "merge_ruby_client/accounting/types/sync_status" require_relative "merge_ruby_client/accounting/types/sync_status_status_enum" +require_relative "merge_ruby_client/accounting/types/tax_component" require_relative "merge_ruby_client/accounting/types/tax_rate_company" -require_relative "merge_ruby_client/accounting/types/tax_rate" +require_relative "merge_ruby_client/accounting/types/tax_rate_tax_components_item" require_relative "merge_ruby_client/accounting/types/tracking_category_company" require_relative "merge_ruby_client/accounting/types/transaction_account" require_relative "merge_ruby_client/accounting/types/transaction_contact" require_relative "merge_ruby_client/accounting/types/transaction_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/transaction_accounting_period" require_relative "merge_ruby_client/accounting/types/transaction" +require_relative "merge_ruby_client/accounting/types/transaction_currency_enum" require_relative "merge_ruby_client/accounting/types/transaction_line_item_item" require_relative "merge_ruby_client/accounting/types/transaction_line_item" +require_relative "merge_ruby_client/accounting/types/underlying_transaction_type_enum" require_relative "merge_ruby_client/accounting/types/validation_problem_source" require_relative "merge_ruby_client/accounting/types/vendor_credit_vendor" require_relative "merge_ruby_client/accounting/types/vendor_credit_company" require_relative "merge_ruby_client/accounting/types/vendor_credit_tracking_categories_item" require_relative "merge_ruby_client/accounting/types/vendor_credit_accounting_period" require_relative "merge_ruby_client/accounting/types/vendor_credit" +require_relative "merge_ruby_client/accounting/types/vendor_credit_apply_line_for_invoice_vendor_credit" +require_relative "merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_invoice" +require_relative "merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit" +require_relative "merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request_invoice" +require_relative "merge_ruby_client/accounting/types/vendor_credit_apply_line_for_vendor_credit_request" require_relative "merge_ruby_client/accounting/types/vendor_credit_line_account" require_relative "merge_ruby_client/accounting/types/vendor_credit_line" +require_relative "merge_ruby_client/accounting/types/vendor_credit_line_request_account" +require_relative "merge_ruby_client/accounting/types/vendor_credit_line_request" +require_relative "merge_ruby_client/accounting/types/vendor_credit_request_vendor" +require_relative "merge_ruby_client/accounting/types/vendor_credit_request_company" +require_relative "merge_ruby_client/accounting/types/vendor_credit_request_tracking_categories_item" +require_relative "merge_ruby_client/accounting/types/vendor_credit_request_accounting_period" +require_relative "merge_ruby_client/accounting/types/vendor_credit_request" +require_relative "merge_ruby_client/accounting/types/vendor_credit_response" require_relative "merge_ruby_client/accounting/types/warning_validation_problem" require_relative "merge_ruby_client/accounting/types/webhook_receiver" diff --git a/merge_ruby_client.gemspec b/merge_ruby_client.gemspec index 750ed5c1..105b5e14 100644 --- a/merge_ruby_client.gemspec +++ b/merge_ruby_client.gemspec @@ -4,7 +4,7 @@ require_relative "lib/gemconfig" Gem::Specification.new do |spec| spec.name = "merge_ruby_client" - spec.version = "0.1.4" + spec.version = "1.0.0" spec.authors = Merge::Gemconfig::AUTHORS spec.email = Merge::Gemconfig::EMAIL spec.summary = Merge::Gemconfig::SUMMARY